R语言中字符格式日期转Date格式后出现NA值的问题
问题解决:日期转换后全部变为NA
问题原因
你的原始日期字符串格式是YYYY-MM-DD(例如"1989-02-20"),但你使用的format = "%d/%m/%Y"对应的是日/月/年(比如"20/02/1989")的格式,两者完全不匹配,导致as.Date无法解析,最终返回全部NA。
解决方案
有两种简单的解决方式:
- 方式一:利用默认解析规则
as.Date默认支持YYYY-MM-DD这种ISO标准日期格式,直接调用无需指定format:
days_of_N$Begin_N <- as.Date(days_of_N$Begin_N)
- 方式二:显式匹配正确格式
如果需要明确指定format,要对应原始字符串的年-月-日结构,使用%Y-%m-%d:
days_of_N$Begin_N <- as.Date(days_of_N$Begin_N, format = "%Y-%m-%d")
验证示例
用你提供的测试数据验证:
test_dates <- c("1989-02-20", "1989-02-22", "1989-02-25", "1989-03-08", "1989-03-11", "1989-03-21") # 执行转换 converted_dates <- as.Date(test_dates) # 输出结果 converted_dates # [1] "1989-02-20" "1989-02-22" "1989-02-25" "1989-03-08" "1989-03-11" "1989-03-21"
内容的提问来源于stack exchange,提问作者JSS
相关产品推荐
相关产品推荐

