将数字变量转换为

时间:2019-09-25 08:17:34

标签: sas

我在SAS中导入了一个CSV文件,它具有一个时间变量,但是时间变量的数字格式如515表示05:15,1110表示11:10和2030表示20:30。

我需要将其转换为正确的时间格式,然后从中取出小时。我尝试过:

new_time = put(time,hhmm。);

我得到的输出就像0:09,0:10。

请帮帮我。

2 个答案:

答案 0 :(得分:1)

尝试一下:

data have;
input mytimevar;
cards;
515
1110
2030
;
run;

data want;
set have;
time = input(put(mytimevar, 4.) || '00', hhmmss.);
format time tod5.;
run;

这是如何工作的:

  1. 使用timevarput转换为文本
  2. 追加00几秒钟
  3. 使用hhmmss.信息作为时间变量输入
  4. 使用tod5.格式以小时显示前导零

答案 1 :(得分:0)

SAS中的时间值是数字,其值是秒数。这种值的显示通常涉及关联诸如TIMEw.dHHMMw.dMMSSw.d之类的时间格式。还有很多。

来自SAS Help我的斜体字

  

SAS时间值
  是代表自   当日午夜。 SAS时间值介于0到86400之间。

注意:时间格式 将处理0到24小时范围之外的时间值(秒数)。

对于时间值(称为csvtime)编码为100*hours + minutes的情况,可以使用dhms函数为{{1}指定零,来计算SAS时间值}和d自变量,以及sh自变量使用整数除法和模数算法从csv时间进行解析。

m