【发布时间】:2021-08-19 07:21:02
【问题描述】:
我尝试为每一天、每周和每月构建一个 x 列的总和。如果特定的日期、星期或月份在开始日期和结束日期之间,我想包含数字 x 并将它们相加。
我构建了这个示例数据框:
library(data.table)
library(lubridate)
df <- data.frame(x=c(13,32,37,21,9,43,12,28),
start=c('2018-06-12','2019-02-12','2018-12-30','2020-02-05','2019-09-29','2017-05-19','2019-06-13','2020-04-12'),
end=c('2018-09-13','2019-03-19','2020-01-10','2020-03-17','2020-10-10','2020-01-02','2019-07-19','2021-06-01'))
#convert columns as date
df$start <- as.Date(df$start,"%Y-%m-%d")
df$end <- as.Date(df$end,"%Y-%m-%d")
我尝试在每一天创建一个 for 循环,以总结每个特定时期的 x 列,但我无法做到。
#for loop over days
days <- seq(from=as.Date("2017-01-01"), to=as.Date("2021-07-31"), by="days")
for (i in seq_along(days)){
print(sum(df$x))}
非常感谢您的帮助:)
【问题讨论】:
-
第二行有错吗? 2019年开始,2018年结束?
-
哦,是的,感谢您的关注!