我有每日时间序列数据。我希望标识数据中与一月份对应的所有行。对于这些行,我希望更新年列,使其向后移动一年。这将允许在上一年的季节而不是当前年份中考虑一月份的行。
这是一个可复制的代码,它生成了类似于我的数据的内容:
library(dplyr)
library(tibble)
# Set the seed for reproducibility
set.seed(123)
# Create a sequence of dates from 2001 to 2005
dates <- seq(as.Date("2001-01-01"), as.Date("2005-12-31"), by = "day")
# Create a tibble with the dates and random numbers for var1 to var4
df <- tibble(year = year(dates), month = month(dates), day = day(dates),
var1 = runif(length(dates)), var2 = runif(length(dates)),
var3 = runif(length(dates)), var4 = runif(length(dates)))
df
有什么想法吗?
2条答案
按热度按时间r7xajy2e1#
对于
dplyr
的使用,您可能会用case_when
执行mutate
。我添加了一个新的变量来演示,如果您真的需要,只需修改year
即可。lf5gs5x22#
您可以将年份变量显示为整数,并过滤一月(月份“01”),从这些日期中减去一年: