点分隔日期时间字符串转POSIXct返回NA的解决方法咨询
解决日期时间转POSIXct返回NA的问题
两种方案都能解决你的问题,其中直接指定格式的方式更高效:
方案1:直接指定日期格式(更推荐)
返回NA的核心原因是你没告诉as.POSIXct()你的日期时间具体格式,和分隔符是点还是横杠无关。直接传入对应格式参数即可:
example <- "13.04.2021 12:00:00" # %d=两位日,%m=两位月,%Y=四位年,%H:%M:%S=时分秒,格式里的.对应原字符串的分隔符 as.POSIXct(example, format = "%d.%m.%Y %H:%M:%S")
执行后就能得到正确的POSIXct类型结果。
方案2:替换点为横杠后转换
如果一定要用替换分隔符的方式,用gsub()把所有点替换成横杠,再指定对应格式转换即可:
example <- "13.04.2021 12:00:00" # 替换所有.为- example_converted <- gsub("\\.", "-", example) # 转换时对应新的分隔符格式 as.POSIXct(example_converted, format = "%d-%m-%Y %H:%M:%S")
这种方法多了一步字符替换操作,不如方案1直接高效。
内容的提问来源于stack exchange,提问作者Marta Román
相关产品推荐
相关产品推荐

