SAS、R如何手动输入数据
一道简单的题目,将下面的数据分别手动输入到SAS和R中,如何实现?
一、SAS
解决方案:
data cust_base_info;
inputcust_no$ name$sex$ is_marriage$birthday:yymmdd10.aum_m_avgods_date:yymmdd10.@@;
format birthday yymmdd10. ods_date yymmdd10.;
cards;
1LiMingMaleTRUE1984052151428.0620170331
2ZhangHongyiFemaleTRUE198201285203.420170331
3WangSimingMaleFALSE19830806214820170331
4ZhangCongMaleTRUE19830225110092.820170331
5LiuYingFemaleTRUE1988092038004.520170331
6MaMingyueFemaleFALSE198910191168020170331
;
run;
结果:
备注:
(1)字符型的变量需要在变量名后加上'$'符,比如:'cust_no$','name$';数值型变量就不需要,比如:'aum_m_avg'。
(2)日期型的变量,比如'birthday',需要加上相应的格式,比如:'birthday:yymmdd10.'和'format birthday yymmdd10.'。
(3)'@@'表示即时输入时不换行,SAS按照输入的顺序依次读取数据。
二、R语言
解决方案:
##在R中手动输入数据
cust_no <- c('1','2','3','4','5','6')
name<-c('LiMing','ZhangHongyi','WangSiming','ZhangCong','LiuYing','MaMingyue')
sex<-c('Male','Female','Male','Male','Female','Female')
is_marriage<-c('True','True','False','True','True','False')
##R语言中日期的默认输入格式为yyyy-mm-dd
birthday <- c('1984-05-31','1982-01-28','1983-08-06','1983-02-25','1988-09-20','1989-10-19')
##将日期的类型由字符型转化为date型
birthday <- as.Date(birthday)
aum_m_avg<- c(51428.06,5203.4,2148,110092.8,38004.5,11680)
##数据处理日期,由字符型转为date型
ods_date<- as.Date(rep('2017-03-31',6))
cust_base_info<- data.frame(cust_no,name,sex,is_marriage,birthday,aum_m_avg,ods_date)
##查看数据前6行
head(cust_base_info)
结果:
三、小结
手动输入数据,数值型变量最好处理,字符型变量加些格式,也好处理。难点在于日期的输入。
1、SAS中,需要在input时在变量后面加上特殊的日期格式,比如'ods_date:yymmdd10.'和'format ods_date yymmdd10.'。
2、R语言中,默认的输入格式是'yyyy-mm-dd',比如'1984-05-31'。输入完成后,因为它是字符型变量,需要将它用as.Date()函数转化为date型,例如birthday <- as.Date(birthday)。
数据分析咨询请扫描二维码