我在SAS中导入了一个CSV文件,它具有一个时间变量,但是时间变量的数字格式如515表示05:15,1110表示11:10和2030表示20:30。
我需要将其转换为正确的时间格式,然后从中取出小时。我尝试过:
new_time = put(time,hhmm。);
我得到的输出就像0:09,0:10。
请帮帮我。
答案 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;
这是如何工作的:
timevar
将put
转换为文本00
几秒钟hhmmss.
信息作为时间变量输入tod5.
格式以小时显示前导零答案 1 :(得分:0)
SAS中的时间值是数字,其值是秒数。这种值的显示通常涉及关联诸如TIMEw.d
,HHMMw.d
,MMSSw.d
之类的时间格式。还有很多。
来自SAS Help(我的斜体字)
SAS时间值
是代表自 当日午夜。 SAS时间值介于0到86400之间。
注意:时间格式 将处理0到24小时范围之外的时间值(秒数)。
对于时间值(称为csvtime
)编码为100*hours + minutes
的情况,可以使用dhms
函数为{{1}指定零,来计算SAS时间值}和d
自变量,以及s
和h
自变量使用整数除法和模数算法从csv时间进行解析。
m