求助:R语言中将字符串日期转换为Date类型出现NA值
解决R中将"YYYYMMDD"格式字符串转为Date类型的问题
嘿,刚看到你的问题,其实问题出在日期格式代码的使用错误上——R里的日期格式符是区分大小写的,而且没有你尝试的那些写法,所以才会返回全NA值,别担心,这是新手常踩的小坑!
先说说你代码里的问题:
%M在R的日期格式里代表分钟,不是月份;月份对应的是小写的%m%YYYY和%DD都是无效的格式符,正确的4位年份是%Y,2位日期是小写的%d
正确的转换代码
针对你"20020101"这种YYYYMMDD格式的字符串,只需要用正确的格式符组合:
tempData$DATE <- as.Date(tempData$DATE, "%Y%m%d")
可以先测试一下(模拟你的数据场景)
我给你写个小示例,你可以直接运行验证:
# 模拟一个包含字符串日期的数据框 tempData <- data.frame(DATE = c("20020101", "20020215", "20021231"), stringsAsFactors = FALSE) # 执行日期转换 tempData$DATE <- as.Date(tempData$DATE, "%Y%m%d") # 查看转换后的类型和结果 str(tempData$DATE) # 输出应该是 Date[1:3], format: "2002-01-01" "2002-02-15" "2002-12-31"
新手小提示
如果之后再遇到日期格式的问题,直接在R里敲?strptime打开帮助文档,里面列了所有可用的日期/时间格式符,非常实用!
内容的提问来源于stack exchange,提问作者Zack Vlliet
相关产品推荐
相关产品推荐

