全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2595 8
2015-03-27
data a1;

input date1 yymmdd10. date2 yymmdd10.;
format date1 yymmdd10. date2 yymmdd10.;
days1=datdif(date1,date2,'act/act');/*按实际*/
days2=datdif(date1,date2,'30/60');/*每个月30天*/
datalines;
2015-01-01 20150214
2014-05-25 20140621
;

proc print ;
run;

data a2;

input date1 yymmdd10. date2 yymmdd10.;
format date1 yymmdd10. date2 yymmdd10.;
days1=datdif(date1,date2,'act/act');/*按实际*/
days2=datdif(date1,date2,'30/60');/*每个月30天*/
put date1= date2=;
datalines;
2015-01-01 2015-02-14
2014-05-25 2014-06-21
;

proc print ;
run;

data a2;

input date1 : yymmdd10.  date2 : yymmdd10.;
format date1 yymmdd10. date2 yymmdd10.;
days1=datdif(date1,date2,'act/act');/*按实际*/
days2=datdif(date1,date2,'30/60');/*每个月30天*/
put date1= date2=;
datalines;
2015-01-01 2015-02-14
2014-05-25 2014-06-21
;

proc print ;
run;

这是三段代码,菜鸟想问为什么a1中date2加入‘-’(如a2)所示,结果就不一样了?如果将a1中date1的读入格式换为一样yymmdd8.读入数据会发生错误,这是什么原因造成的?解决方案可以如a3所示,菜鸟求大牛讲解为什么,拜谢~~

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-3-28 10:08:02
20150214 对应的格式应该是yymmddn8.
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-3-28 17:32:37
382220827 发表于 2015-3-28 10:08
20150214 对应的格式应该是yymmddn8.
您试试。。这个格式读入不进去。。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-3-29 11:12:35
肝贝 发表于 2015-3-28 17:32
您试试。。这个格式读入不进去。。。。
是我想当然并且误导你了,我接触sas也没多长时间,看下面语句吧
data ABC;
input date1 : yymmdd.;
date2=put(date1,yymmddn8.);
cards;
20150329
20150401
20150402
20150403
;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-3-29 18:43:29
382220827 发表于 2015-3-29 11:12
是我想当然并且误导你了,我接触sas也没多长时间,看下面语句吧
data ABC;
input date1 : yymmdd.;
可能我表述不清,其实这里的三段代码都能导入数据,我的问题是:为什么第一段代码导入数据的结果和另外两段代码不一样~~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-3-29 21:35:09
哦明白意思了,我们共同探讨探讨啊。我认为如果你给输入的数据指定了一个n.的长度,那么它会读入n长的数据,直到遇到空格停止,此时指针停留在空格处......还是看如下语句吧
data abc;
input x 2. y 3.;
datalines;
1234567
1 234567
12 34567
;
run;
1.PNG

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群