首页 > 解决方案 > 如何在 R 中做 SUMIFS

问题描述

数据:

 set.seed(42)

df1 = data.frame(
  Date = seq.Date(as.Date("2018-01-01"),as.Date("2018-01-30"),1),
  value = sample(1:30),
  Y = sample(c("yes", "no"), 30, replace = TRUE)
)

df2 = data.frame(
  Date = seq.Date(as.Date("2018-01-01"),as.Date("2018-01-30"),7)
)

我想为每个日期df2$Date计算 df1$Value 的总和,如果日期在+6df1$Date以内df2$Datedf2$Date

简而言之,我需要计算每周总和

标签: rsumifs

解决方案


查看 library lubridate 和 dplyr,这两个很常见。

library(lubridate)
library(dplyr)

df1$last_week_day <- ceiling_date(df1$Date, "week") + 1
df1 %>% group_by(last_week_day) %>% summarize(week_value = sum(value))

推荐阅读