登录
首页精彩阅读SAS、R如何手动输入数据
SAS、R如何手动输入数据
2017-04-19
收藏

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)。


数据分析咨询请扫描二维码

客服在线
立即咨询