首页 > 解决方案 > as.Date 给我 NA

问题描述

我已经尝试了这个线程中的所有内容。日期返回 NA 同时从“ddmmmyyyy”转换以尝试对我的问题进行排序。

我正在使用这些命令将一个因素转换为日期:

cohort$doi <- as.Date(cohort$doi, format= "%Y/%m/%d")

我所有的日期目前都采用以下格式:YYYY-MM-DD,据我所知,上述内容应该有效

我昨天使用此代码将各种变量的所有日期从一个因素转换为一个日期。它昨天工作,一切都很好。今天我打开了我的脚本并导入了我的数据,运行了这个命令并查看了我的数据,但现在所有的日期都显示为 NA。

我已经尝试了以前线程中的所有内容(我查看的不仅仅是我上面链接的那个),但到目前为止没有任何效果。我不知道现在该怎么办

doi 列的示例:

1970-01-01

1970-02-02

1970-03-03

1970-04-04

该列当前被归类为一个因素。当我执行上面使用的代码时,该列被定义为日期,但现在所有日期都显示为 NA 除了关闭 R 并在今天再次打开它之外,我什么也没做。

标签: ras.date

解决方案


如果您阅读文档,as.Date您会注意到默认格式是%Y-%d-%mor %Y/%d/%m

默认格式遵循 ISO 8601 国际标准的规则,将一天表示为“2001-02-03”。

在您的代码中,您已指定日期由斜杠格式化,但您的示例数据显示它们以默认格式格式化as.Date

doi <- as.factor(c("1970-01-01",
                   "1970-02-02",
                   "1970-03-03",
                   "1970-04-04"))

as.Date(doi) # default format %Y-%m-%d
[1] "1970-01-01" "1970-02-02" "1970-03-03" "1970-04-04"

as.Date(doi, format = "%Y/%m/%d") # incorrect specification of your date format
[1] NA NA NA NA

as.Date("1970/01/01") # also a default format
[1] "1970-01-01"

注意:as.Date接受字符串、因子、逻辑 NA 和类“POSIXlt”和“POSIXct”的对象。


推荐阅读