R语言如何将含2位年的字符型日期转为时间序列可用的日期时间格式
两位年份日期时间转换错误解决方案
格式符使用错误是导致年份识别偏差的核心原因:
%Y为4位年份专用匹配符,传入2位年份时会被R识别为公元纪年的对应年份(如21会被解析为0021)- 2位年份需使用小写
%y作为匹配符,R默认将0069范围的2位年份映射为20002069,7099范围映射为19701999,完全匹配你21、22这类年份的识别需求
正确的基础转换代码如下:time <- as.POSIXct(dataframe$DT, format="%m-%d-%y %H:%M")
如果你的数据中存在需要自定义年份基准的场景,比如全部2位年份都归为20xx年,可以用lubridate包的解析函数调整规则:
library(lubridate) time <- parse_date_time(dataframe$DT, orders = "mdy HM", cutoff_2000 = Inf)
转换完成后可以直接打印结果验证年份识别是否正确:print(time)
内容的提问来源于stack exchange,提问作者tech bitz
相关产品推荐
相关产品推荐

