as.Date 给我 NA

as.Date giving me NA's

我已经尝试了此线程中的所有内容 as.Date returning NA while converting from '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关了再打开,我什么都没做。

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

The default formats follow the rules of the ISO 8601 international standard which expresses a day as "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接受类“POSIXlt”和“POSIXct”的字符串、因子、逻辑NA和对象。