将数值变量转换为SAS时间变量

时间:2016-03-02 11:32:46

标签: time format sas

我导入了一个cvs文件并且有一个变量'出发时间'在我的sas文件中,包含四个数字,例如0856上午08.56。我希望SAS能够将其识别为时间并希望它显示为08:56。我试过了:

put DEP_TIME hhmm5.;

format DEP_TIME hhmm5.;

不起作用。似乎无法解决这个问题。

任何线索?

2 个答案:

答案 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 ;