此问题已在此处有答案:
as.Date(as.POSIXct()) gives the wrong date?(2个答案)
4天前关闭。
我在R中有一个ifelse语句,它处理日期值。Date 1和Date 2是日期格式(yyyy-mm-dd),但date_new生成为数字(如1630627200)。为什么这个结果值这么大?我尝试了as.Date + origin将数字转换为日期,但结果没有正确的4位数年份(结果类似于“4466475-08-21”)。错误的year值很可能是由date_new的巨大值引起的。
library(lubridate)
df$date_new <- ifelse(is.na(df$date1), df$date2, df$date1)
df$date_new <- as.Date(df$date_new, origin=lubridate::origin)
我该怎么解决?谢谢
1条答案
按热度按时间f87krz0w1#
R中处理日期字段的IFELSE语句将生成一个新的数值变量。下面的代码可以将其转换为日期格式(YYYY-mm-dd)。
有时由于时区问题,结果日期可能会有一天。上面的代码运行良好。