使用AM / PM将小时转换为SAS中的数字小时

时间:2015-04-15 23:43:20

标签: sas

我在SAS中有一个数据集,其格式为" 8 AM"," 11 AM"," 5 PM"等等。我的问题是如何我可以将这些转换为数值,最好是24小时格式吗?

我最接近的是1)newvar = input(oldvar, 1.);或2)newvar = input(oldvar, 2.);,但这对每次观察都不起作用。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

没有专门的信息,所以如果没有先进行预处理,就不能使用INPUT功能。 TIMEw.信息可用于如下所示的值:

8:00 PM

所以,我们只需要几行代码(可以压缩成一行,但更好的可读性):

pm     =tranwrd(oldvar,'P',':00 P');
ampm   =tranwrd(pm,'A',':00 A');
newvar =input(ampm,time8.);

我们使用TRANWRD函数将'A'和'P'的发生率分别替换为':00 A'和':00 P',以便它们适合信息并且可以作为时间价值。

在数据步骤中使用FORMAT语句将值显示为24小时:

FORMAT newvar TIME9.;

额外阅读

TRANWRD函数 - http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000215027.htm

TIME格式文档 - http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000197928.htm