r - 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)
}
谁能帮我获取列中所有日期的范围并将它们放在一个具有日期格式的数据框中?所需的输出将是:
非常感谢!
解决方案
您可以使用任何 apply 命令生成一系列日期值并将其添加为原始数据框中的新列。
test_IIVAC$dates <- lapply(df$a, function(x) seq(x-14, x, by = 'day'))
推荐阅读
- reactjs - 类型 'string[]' 不能分配给类型 'never[]'
- c# - 从 swagger UI 的标头中传递 Jwt 令牌作为不记名令牌不起作用
- python - 在 Python Pandas 中组合 datafames
- reactjs - 如何将已经构建的带有 express.js 后端的 react 应用程序部署到 heroku
- c++ - 如何合并从函数返回的向量?
- c# - 在其他线程中触发事件后在事件处理程序中更新 UI 的最佳方法
- python - 使用 concurrent.futures.ProcessPoolExecutor 在 Python 中进行多处理
- typescript - Typescript:根据枚举成员的数量获取一个固定长度的元组
- mongodb - 如何将火花结构流写入mongodb集合?
- javascript - 如何理解“add(1)(2)(3)=6”?