【发布时间】:2020-08-30 14:02:40
【问题描述】:
您好,我正在寻找一个优雅的解决方案,理想地结合 dplyr&purr。
我将按 id 对数据进行分组,然后我有 4 个数字列,我想应用到所有这些列 列求和函数。另外,我想根据 diff 列将条件总和应用于这 4 个数字列。
所以说具体一点,我想总结所有 4 列的总和,diff
我从这个开始但被卡住了
df%>%group_by(id)%>%summarise_if(is.numeric,.funs = (sum,~sum(.[diff<11]))
df<-structure(list(id = c(10274565, 10274449, 10274449, 10274449,
10274565, 10274557, 10274557, 10274449, 10274565, 10274565, 10274565,
10274557, 10274565, 10274557, 10274557, 10274557, 10274557, 10274557,
10274557, 10274449, 10274449), d_amt = c(70L, 52L, 47L, 31L,
100L, 17L, 74L, 54L, 83L, 90L, 76L, 98L, 73L, 49L, 81L, 82L,
80L, 24L, 30L, 21L, 43L), d_cnt = c(3L, 4L, 3L, 3L, 5L, 3L, 1L,
3L, 1L, 3L, 3L, 3L, 5L, 1L, 4L, 1L, 1L, 5L, 4L, 4L, 5L), w_amt = c(74L,
16L, 20L, 73L, 22L, 11L, 61L, 90L, 78L, 94L, 64L, 58L, 84L, 15L,
42L, 31L, 53L, 92L, 76L, 14L, 65L), w_cnt = c(4L, 5L, 1L, 1L,
5L, 2L, 4L, 3L, 3L, 2L, 5L, 1L, 4L, 1L, 4L, 4L, 1L, 1L, 4L, 3L,
1L), diff = structure(c(43, 30, 20, 16, 22, 57, 50, 40, 64, 51,
50, 8, 88, 85, 79, 43, 28, 22, 17, 13, 3), class = "difftime", units = "days")), row.names = c(NA,
-21L), class = c("tbl_df", "tbl", "data.frame"))
【问题讨论】: