Sas:如何以时间格式显示值


假设 SAS 中有一个名为“duration”的变量,其时间值为7:30:00

您可以使用 SAS 中的以下函数以不同的方式格式化该时间值:

  • PUT(duration, time8.) – 时间格式,总长度为8。
    • 这将产生 7:30:00。
  • PUT(持续时间,hhmm。) – 小时格式,仅包含小时和分钟。
    • 这将产生 7:30。
  • PUT(duration, hours5.2) – 格式为带小数的时间。
    • 这将产生 7.50。
  • hour(duration) – 仅以小时为单位的格式。
    • 这将产生 7
  • 分钟(持续时间) ——仅以分钟为单位的格式。
    • 这将产生 30 个。
  • 秒(持续时间) – 仅以秒为单位的格式。
    • 这将产生 0。

以下示例展示了如何在实践中使用每种格式。

示例:在SAS中以时间格式显示值

假设我们在 SAS 中有以下数据集,其中包含有关不同运动员完成任务所需时间的信息:

 /*create dataset*/
data my_data;
    input athlete $duration time8.;
    datalines ;
At 04:15:00
B 10:09:15
C 7:30:00
D 18:55:00
E 14:23:59
F 23:45:10
;
run ;

/*view dataset*/
proc print data =my_data;

默认情况下,SAS 以秒为单位存储时间值。

例如,在第一行中我们输入 4 小时 15 分 0 秒,相当于 15,300 秒。

:一天有 86,400 秒。

我们可以使用以下语法创建一个新数据集,其中我们将持续时间列值格式化为不同的时间格式:

 /*create new dataset with duration printed in various time formats*/
data new_data;
set my_data;
    duration_time8 = put (duration, time8. );
    duration_hhmm = put (duration, hhmm. );
    duration_hour52 = put (duration, hour5.2 );
    duration_hour = hour (duration);
    duration_minute = minute (duration);
    duration_second = second (duration);
run ;

/*view new dataset*/
proc print data = new_data; 

请注意,每个新列都以不同的方式格式化时间值:

  • uration_time8显示小时、分钟和秒。
  • uration_hhmm仅显示小时和分钟。
  • uration_hhmm显示十进制小时。
  • uration_hour仅显示小时值。
  • 分钟_持续时间仅显示分钟值。
  • uration_second仅显示秒值。

您可以随意使用任何您想要的格式,具体取决于您希望如何在数据集中显示时间值。

其他资源

以下教程解释了如何在 SAS 中执行其他常见任务:

SAS:如何以美元格式显示值
SAS:如何以百分比格式显示值
SAS:如何在PROC SQL中格式化日期值

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注