【发布时间】:2021-05-28 05:45:07
【问题描述】:
所以我目前正在努力使用 if 函数更改日期的年份部分。
我的日期列看起来像这样(实际数据框中的值更多,因此不能手动解决):
Date
<S3: POSIXct>
2020-10-31
2020-12-31
我基本上想创建一个 if 命令(或任何其他方法),这样如果月份小于 12(即不是 12 月),那么年份就会增加 1。
到目前为止,我已经尝试使用 lubridate 包来做:
if (month(df$Date)<12) {
df$Date <- df$Date %m+% years(1)
}
但是,该函数似乎没有正确调节,而是每年添加一个,包括月份 = 12 的那些
任何帮助将不胜感激!
【问题讨论】:
-
if要求它的条件是精确的长度 1(不是 0,不是 2 或更多),所以如果你的df不是 1 行,那应该提供一个明确的警告,你不应该这样做。有人可能会想试试ifelse,但那是ill-advised。可以尝试replace,它与ifelse的命运不同。 -
感谢您让我走上正轨,并开始研究我在下面发布的另一种方法
标签: r date datetime lubridate date-conversion