在r中使用haven read_sas的日期



我正在使用haven::read_sas读取sas数据集,我遇到了应该是日期但被读取为数字的列的问题。

是否有一种方法可以指定何时使用read_sas()来解释列X为字符或日期?如果有帮助的话,sas数据集中的条目是YYYYMM形式的,所以像202003read_sas这样的东西将它们作为数字接收。

应该提到这个日期列被错误地读入(数字混乱),所以仅仅使用as.Dateas.character修改列后不工作。例如,202005被读取为22036

SAS使用1960年1月1日作为起始日期,并且所有日期都是表示起始日期和指定日期之间天数的数值。1960年1月1日之前的任何日期都是负数,之后的任何日期都是正数。使用haven导入数据后,您可以使用此origin将其格式化为日期。

x <- 22036
as.Date(x , origin = "1960-01-01")
#> [1] "2020-05-01"

关于SAS日期文档,您可以在这里看到。

相关内容

  • 没有找到相关文章

最新更新