R语言中使用max()函数获取日期最大值返回NA的求助
解决建议
排查转换后的NA值
先执行代码查看有多少日期转换失败,以及具体的异常原始日期:# 统计转换失败的数量 sum(is.na(MD$Date)) # 查看转换失败的原始日期字符串 MD[is.na(MD$Date), "Date"]转换失败大多是因为原始日期格式不统一,比如存在单数字日/月(如
1.2.2018)、用斜杠替代点号(如21/12/2018),或是无效日期(如32.12.2018)。处理格式不统一的日期
如果是格式杂乱的问题,推荐用lubridate包的dmy()函数,它能自动识别多种日-月-年格式:# 首次使用先安装包 install.packages("lubridate") library(lubridate) MD$Date <- dmy(MD$Date)若不想依赖额外包,可先统一格式再转换:
# 把斜杠替换为点号,统一格式 MD$Date_clean <- gsub("/", ".", MD$Date) MD$Date <- as.Date(MD$Date_clean, "%d.%m.%Y")忽略NA计算最大值
完成日期转换后,调用max()时加上na.rm=TRUE参数,忽略NA值即可得到正确结果:analysis_date <- max(MD$Date, na.rm=TRUE)
内容的提问来源于stack exchange,提问作者Thomasiko
相关产品推荐
相关产品推荐

