as.POSIXct转换日期格式异常,求原因及解决方法
解决POSIXct日期转换年份显示0014的问题
这个问题我之前处理过!原因其实很直观:你在format参数里用了%Y,但你的日期字符串里年份是两位数字(比如"14"),而%Y是R用来匹配四位完整年份的格式符,所以R就把"14"直接解析成了公元14年,也就是你看到的0014。
正确的解决方法
只需要把格式符换成%y就可以了——%y是专门用来匹配两位年份的,默认情况下它会把00-69的两位年份对应到2000-2069,70-99对应到1970-1999,完全符合你的需求:
# 正确的转换代码 head(as.POSIXct(as.character(mCRC$inkldato), format="%d/%m/%y"))
运行这段代码后,你应该会得到预期的2014-xx-xx格式的日期了。
额外小提示
如果你之后遇到更复杂的日期解析场景,也可以试试lubridate包里的dmy()函数,它能自动识别这种日/月/两位年的格式,用起来更省心:
library(lubridate) head(dmy(mCRC$inkldato))
内容的提问来源于stack exchange,提问作者user2300940
相关产品推荐
相关产品推荐

