不使用sas中的输入列表方法读取数值

时间:2015-06-16 15:04:43

标签: sas

这就是故事

这是输入文件

mukesh,04/04/15,04/06/15,125.00,333.23
vishant,04/05/15,04/07/15,200.00,200
achal,04/06/15,04/08/15,275.00,55.43

这是我正在使用的导入声明

data datetimedata;
infile fileref dlm=','; 
input lastname$  datechkin mmddyy10. datechkout mmddyy10. room_rate equip_cost;
run;

以下是显示成功的日志

NOTE: The infile FILEREF is:
      Filename=\\VBOXSVR\win_7\SAS\DATA\datetime\datetimedata.csv,
      RECFM=V,LRECL=256,File Size (bytes)=688,
      Last Modified=13Jun2015:12:08:36,
      Create Time=13Jun2015:09:13:09

NOTE: 17 records were read from the infile FILEREF.
      The minimum record length was 34.
      The maximum record length was 40.
NOTE: The data set WORK.DATETIMEDATA has 17 observations and 5 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds

我这里只发表过3次观察。

现在,当我打印sas数据集时,一切正常,除了 room_rate 变量。

output of proc print

输出应该是3位数字,但我只得到最后一位数字。 我哪里错了!!!

1 个答案:

答案 0 :(得分:3)

您正在混合输入类型。使用列表输入时,无法指定信息。您需要使用修改后的列表输入指定它们(在信息中添加冒号)或者先使用informat语句。以下作品。

data datetimedata;
infile datalines dlm=','; 
input lastname$  datechkin :mmddyy10. datechkout :mmddyy10. room_rate equip_cost;
datalines;
mukesh,04/04/15,04/06/15,125.00,333.23
vishant,04/05/15,04/07/15,200.00,200
achal,04/06/15,04/08/15,275.00,55.43
;;;;
run;

proc print data=datetimedata;
run;