我导入了一个cvs文件并且有一个变量'出发时间'在我的sas文件中,包含四个数字,例如0856
上午08.56。我希望SAS能够将其识别为时间并希望它显示为08:56
。我试过了:
put DEP_TIME hhmm5.;
format DEP_TIME hhmm5.;
不起作用。似乎无法解决这个问题。
任何线索?
答案 0 :(得分:2)
信息B8601TM。
33 data _null_;
34 t='0856';
35 time = input(t,B8601TM.);
36 format time time.;
37 put 'NOTE: ' (_all_)(=);
38 run;
NOTE: t=0856 time=8:56:00
答案 1 :(得分:0)
我不认为有一个信息可以将4位数的字符串转换为时间。
使用hms()
和substr()
功能或自定义图片格式可以通过以下几种方式执行此操作:
proc format ; picture TM low-high = '00:00' ; run ; data want ; set have ; /* hms and substr method */ new_time1 = hms(substr(dep_time,1,2),substr(dep_time,3,2)) ; format new_time1 hhmm5. ; /* input / put with picture format */ new_time2 = input(put(input(dep_time,4.),tm.),time5.) ; format new_time2 hhmm5. ; run ;