如何将数字转换为SAS时间值?

时间:2018-07-20 12:14:48

标签: sas sas-macro

我在sas中有一个变量,它的读取时间为515(数字格式),但是我想将其转换为5:15或05:15。

data  output;
set old;
/* if variable name is var, what should I write here to convert 515 
   to 5:15 or to 05:15*/
run;

4 个答案:

答案 0 :(得分:1)

有比这更简单,更干净的方法,但这也可行。

 data  output;
var1=515;
var2= input(cats(substr(put(var1,3.),1,1),":",substr(put(var1,3.),2,3)),time5.);
format var2 time5.;
run;

答案 1 :(得分:0)

在R中-您可以使用以下正则表达式将数字转换为时间格式:

var = 515;
var_time = sub("(\\d+)(\\d{2})", "\\1:\\2", var);

答案 2 :(得分:0)

  1. 通过PUT()转换为字符
  2. 通过INPUT()重新读回它

    data have;
        x=515;
        sas_time = input(put(x, 8. -l), hhmmss.);
        format sas_time time5.;
    run;
    
    proc print;
    run;
    

答案 3 :(得分:0)

您可以使用算术将数字从现有值转换为自午夜以来的秒数。然后附加时间。对其进行格式化,以便以可读格式打印。

time=hms(int(time/100),mod(time,100),0);
format time time5.;