全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1156 2
2012-05-13
SAS BASE 50题中有一题的程序如下:

data work.family;
input relation $ first_name $ birthdate: mmddyy8.;
datalines;
son Frank 01/31/89  
daughter June    12-25-87  
brother Samuel 01/17/51
;
run;


以上是一段在SAS中能正确运行的程序,我想知道,为什么去掉上述程序中的冒号之后,程序就无法正常运行呢?谢谢大家啊~希望大神来为我解惑~
二维码

扫码加我 拉你入群

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

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

全部回复
2012-5-13 19:58:46
读入birthdate时,应该是以mmddyy8.的格式读入。但有些日期长度小于8。如果不加冒号,那么就会出现读入错误,因为系统还是读入8位。加冒号后,遇到空格就停止读入了,不会读入多余的值。可能你的数据有些日期是小于8位吧
二维码

扫码加我 拉你入群

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

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

2012-5-13 20:38:15
sl122113 发表于 2012-5-13 19:58
读入birthdate时,应该是以mmddyy8.的格式读入。但有些日期长度小于8。如果不加冒号,那么就会出现读入错误 ...
对的,first_name 后只能有一个空格,若是不用:格式修饰符。因为MMDYY8. 会从上一个变量读完的位置再取8个字符进去,且不管开头是不是空格。
data work.family;
input relation $ first_name $ birthdate mmddyy8.;
datalines;
son  Frank 01/31/89  
daughter June 12-25-87  
brother Samuel 01/17/51
;
run;

proc print;
  format birthdate mmddyy8.;
run;





二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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