如何将R语言中dd/mm/yyyy格式的字符型birthdate转为日期类型?
解决R语言中dd/mm/yyyy格式字符转日期的问题
你的问题主要有两个原因:
as.Date()默认解析格式是yyyy-mm-dd,直接传入dd/mm/yyyy的字符串会导致日期识别错误,比如把21/12/1948误识别为年份21、月份12、日期19;- 代码里存在变量名拼写错误:
birhtdate应该是birthdate,这会导致R找不到目标变量。
正确的转换方法
直接使用as.Date()并指定对应格式即可:
# 修正变量名并指定日期格式 x$birthdate <- as.Date(x$birthdate, format = "%d/%m/%Y")
格式符说明:
%d:两位数字的日期(如21)%m:两位数字的月份(如12)%Y:四位数字的年份(如1948)
更便捷的日期处理(可选)
如果需要后续计算年龄,推荐使用lubridate包,它能自动识别日/月/年格式:
# 首次使用先安装包 install.packages("lubridate") library(lubridate) # 一键转换日期格式 x$birthdate <- dmy(x$birthdate) # 计算精确年龄(考虑当年生日是否已过) x$age <- interval(x$birthdate, today()) %/% years(1)
内容的提问来源于stack exchange,提问作者cmj
相关产品推荐
相关产品推荐

