从 $7 转换时间格式。到时间5。在SAS

Converting the time format from $7. to time5. in sas

我有一个 sas 数据集,其中有一列名为“时间”,格式为 $7.,例如 23:57.

我试着把它转换成time5的格式。如下所示,但它返回错误为“无效的数字数据...”。

data want;
set have;
time1 = input(time, time5.);
format time1 time5. 
run;

所以我想知道什么是正确的代码。谢谢!

应该可以。请注意,如果您希望上午 10 点之前的时间以前导零打印,并且 none 的时间大于 24 小时,请使用 TOD5。而不是 TIME5。在格式声明中。还可以尝试读取原始字符串变量的所有 7 个字节,而不是只读取前 5 个字节。

data want;
  set have;
  time1 = input(time, time7.);
  format time1 tod5. ;
run;

比较原始变量和新变量,看看它是否有效。

proc freq data=want;
  tables time1*time / list missing;
run;