我正在尝试将字符串转换为R中的日期。这些是字符串的示例:
“ 1973年8月”“ 1974年8月”“ 1975年8月”“ 1976年8月”“ 1977年8月”
我在与上面类似的日期字符串上运行以下行:
exportsDF$Date <- as.Date(as.character(exportsDF$Date), format = "%b-%Y")
这将返回所有值的NA。我将日期列转换为字符的步骤将返回正确的值。有什么想法为什么as.Date()命令不起作用?数据中没有NA或缺少值。每个值都具有“%b-%Y”格式。
感谢您的帮助!
答案 0 :(得分:1)
日期格式也需要一天,因此您可以添加月份中的任意一天。在这里,我选择了第一天:
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
。