首页 > 解决方案 > For循环获取日期范围R

问题描述

希望你能帮帮我!对于列中的所有日期,我想获得每个日期的范围 - 14 天。例如,如果我的专栏中的第一个日期是 29-04-2021,我想获取从 15-04-2021 到 29-04-2021 的日期。我找到了执行此操作的函数 seq,但要对列中的所有值执行此操作,我需要将 seq 函数放入 for 循环中。这是我尝试过的,但输出只是最后一行并且日期格式发生了变化。这是我的代码(test_IIVAC$'Vacdate 1' 是我的日期栏):

df <- data.frame()
 
for(i in 1:length(test_IIVAC$`Vacdate  1`)){
    te  <- as.Date(seq(test_IIVAC$`Vacdate  1`[i]-14, test_IIVAC$`Vacdate  1`[i], by = "day"))
    df1 <- rbind(df, te)
}

谁能帮我获取列中所有日期的范围并将它们放在一个具有日期格式的数据框中?所需的输出将是:

输出

非常感谢!

标签: rdatefor-loopseq

解决方案


您可以使用任何 apply 命令生成一系列日期值并将其添加为原始数据框中的新列。

test_IIVAC$dates <- lapply(df$a, function(x) seq(x-14, x, by = 'day'))

推荐阅读