%b-%Y 日期转换给出 NA

%b-%Y date conversion gives NA

我正在尝试将字符串转换为 R 中的日期。这些是字符串的示例:

"Aug-1973" "Aug-1974" "Aug-1975" "Aug-1976" "Aug-1977"

我 运行 下面一行日期字符串与上面的类似:

exportsDF$Date <- as.Date(as.character(exportsDF$Date), format = "%b-%Y")

这 returns 所有值的 NA。我将日期列转换为字符 returns 正确值的步骤。知道为什么 as.Date() 命令不起作用吗?数据中没有 NA 或缺失值。每个值都有一个“%b-%Y”格式。

感谢任何帮助!

日期格式也需要一天,因此您可以添加一个月中的任意一天。在这里,我选择了第一天:

dates <- c("Aug-1973", "Aug-1974", "Aug-1975", "Aug-1976", "Aug-1977")
res <- as.Date(paste0("01-", dates), format = "%d-%b-%Y")
print(res)
#[1] "1973-08-01" "1974-08-01" "1975-08-01" "1976-08-01" "1977-08-01"

原因是基础 Date 数据类型是一个整数,用于计算自某个参考日以来的天数。具体来说,自 1970-01-01 以来的天数。参见 ?Date

现在可以通过

随意显示 Date 对象 res
format(res, "%B-%Y")
#[1] "August-1973" "August-1974" "August-1975" "August-1976" "August-1977"

或类似。

month(res) 函数及其同类函数也很有帮助。参见 ?month