R语言中字符型日期转日期类型时数据丢失的问题求助
解决日期转换丢失问题
你的日期字符串是**日/月/年(DD/MM/YYYY)**格式,但转换时错误使用了%m-%d-%Y(月-日-年)的格式参数,导致日数值大于12的日期无法被正确解析,变成NA,所以出现大量日期丢失的情况。
正确的日期转换代码
使用%d/%m/%Y格式参数匹配你的日期结构:
df <- data.frame( Created_date_c = c("01/10/2022", "21/11/2021", "15/08/2022", "01/01/2022") ) # 正确转换日期 df$Created_date_c <- as.Date(df$Created_date_c, format = "%d/%m/%Y") # 查看转换结果 print(df$Created_date_c)
转换后输出:
[1] "2022-10-01" "2021-11-21" "2022-08-15" "2022-01-01"
筛选10月数据的方法
基础R实现
# 筛选指定年份的10月数据(比如2022年) october_data <- df[format(df$Created_date_c, "%Y-%m") == "2022-10", ]
用lubridate包简化操作(推荐)
lubridate能自动识别DD/MM/YYYY格式,无需手动指定格式:
library(lubridate) # 转换日期 df$Created_date_c <- dmy(df$Created_date_c) # 筛选所有年份的10月数据 october_data <- df[month(df$Created_date_c) == 10, ]
内容的提问来源于stack exchange,提问作者Doulz
相关产品推荐
相关产品推荐

