r - 如何在 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$Date
df2$Date
简而言之,我需要计算每周总和
解决方案
查看 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))
推荐阅读
- java - Spring-security:登录用户页面时获得http状态405
- java - 对象使用 lambda 调用自己,困惑
- android - 在 Android 中不调用 React Native getInitialURL()
- javascript - 为什么 Visuall Studio Code 会自动添加 {" "}?
- python - 如何使用 POST 请求数据通过 pymongo 查找数据
- javascript - 用 jQuery 删除括号
- android - 从异步任务访问 UI 数据
- php - 如何从 Doctrine 2 中的实体创建表
- pie-chart - 谷歌饼图中的自定义切片
- javascript - Angular CDK - 在嵌套的可滚动 div 内滚动和拖动元素的问题