You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R导入dd/mm/yyyy格式日期时天数被误识别为年份的问题咨询

问题根源

你的日期转换错误是因为as.Date函数的格式掩码和原数据的日期结构不匹配:
原数据格式为dd/mm/yyyy(日/月/四位数年份),你使用的"%m/%d/%y"存在两处错误:

  • 顺序颠倒:%m(月)对应了原数据第一部分的日,%d(日)对应了原数据第二部分的月
  • 年份格式错误:小写%y仅识别2位数年份,原数据为4位完整年份,需要用大写%Y

修复方案

方案1:修正基础as.Date的格式掩码

直接修改转换代码的掩码参数即可:

db <- read.csv("C:\\Users\\.....\\db.csv", sep=";")
# 掩码 %d/%m/%Y 对应 日/月/四位数年 结构
db$date <- as.Date(db$date, "%d/%m/%Y")

方案2:使用lubridate包简化转换(无需记格式掩码)

如果不想记忆格式符的写法,可以用lubridate包专门处理日月年顺序的日期:

# 未安装包先执行:install.packages("lubridate")
library(lubridate)
db$date <- dmy(db$date)

转换完成后可执行class(db$date)验证,返回"Date"即为转换成功,后续即可正常用于匹配、运算等操作,不会再报字符型列的合并错误。

内容的提问来源于stack exchange,提问作者ArTu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 13:27:01