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

在SAS中将AM/PM的小时转换为数字小时,sas,Sas,我在SAS中有一个数据集,其字符值的形式为“8AM”、“11AM”、“5PM”等。。我的问题是如何将它们转换为数值,最好是24小时格式 我得到的最接近的结果是1)newvar=input(oldvar,1.)或2)newvar=input(oldvar,2.),但这并不适用于每个观察 任何帮助都将不胜感激。没有专门的信息,因此如果不先进行一些预处理,就不能使用输入功能。TIMEw.informat可用于如下所示的值: 8:00 PM 因此,我们只需要几行代码(可以压缩成一行,但可读性更好):

我在SAS中有一个数据集,其字符值的形式为“8AM”、“11AM”、“5PM”等。。我的问题是如何将它们转换为数值,最好是24小时格式

我得到的最接近的结果是1)
newvar=input(oldvar,1.)或2)
newvar=input(oldvar,2.),但这并不适用于每个观察


任何帮助都将不胜感激。

没有专门的信息,因此如果不先进行一些预处理,就不能使用
输入功能。
TIMEw.
informat可用于如下所示的值:

8:00 PM
因此,我们只需要几行代码(可以压缩成一行,但可读性更好):

我们使用
TRANWRD
函数分别用“:00a”和“:00p”替换“A”和“p”的发生率,以便它们符合信息并可以作为时间值读入

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

FORMAT newvar TIME9.;
额外阅读

传输函数-


时间格式文档-

这正是我想要的-感谢您的精彩写作!
FORMAT newvar TIME9.;