SAS到R日期时间转换

时间:2016-11-30 08:41:47

标签: r datetime sas

SAS文档说明了数据和日期时间值的以下内容:

SAS时间值:表示自当天午夜起的秒数。 SAS时间值介于0和86400之间。

SAS日期时间值:表示1960年1月1日到指定日期内的小时/分钟/秒之间的秒数。

我愿意用R转换下列日期和小时值,我对小时(日期时间)转换有很大疑问,其中一个是" HH:MM:SS" R_hour1R_hour2中的值是否正确?

我必须在我的表格中分隔列,SAS日期= 20562 和SAS小时= 143659

R: R_date <- as.Date(as.integer(20562), origin="1960-01-01"); R_date 
[1] "2016-04-18"

R: R_hour1 <- as.POSIXct(143659, origin = R_date); R_hour1 
[1] "2016-04-19 17:54:19 CEST"

R: R_hour2 <- as.POSIXct(143659, origin = "1960-01-01"); R_hour2
[1] "1960-01-02 16:54:19 CET"

1 个答案:

答案 0 :(得分:1)

与R类似,SAS Date和DateTime值可以包含您希望的任何来源。默认格式有一个默认格式(两者都是1/1/1960),但您可以使用日期时间字段表示您希望的任何原点,并且它通常仍可以与任何日期时间函数完美配合(尽管它不会显示除非你写自定义格式,否则请正确)。如上所示,使用R_hour1可能会有不同的原点。

因此,您必须询问生成数据的人员该字段的含义及其来源应该是什么。