我的例子
df <- data.frame(id1 = c("a" , "b", "c"),
id2 = c("a", "a", "d"),
n1 = c(2,2,0),
n2 = c(2,1,1),
n3 = c(0,1,1),
n4 = c(0,1,1))
首先,我已经像这样汇总了跨列的所有行
df <- df %>%
group_by(id2) %>%
summarise(across(c(n1,n2,n3,n4), sum, na.rm = TRUE),
.groups = "drop")
现在,但现在我想只有聚合具有2行第一a
列中id2
。id1
自从我希望这样输出以来,我们如何保留该列。老实说,那一栏只是用来比较的,id2
相当多余,但我真的想保留它。
id1 id2 n1 n2 n3 n4
a a 4 3 1 1
c d 0 1 1 1
对此有何建议?
更改其中的id2
值'a'
。
library(dplyr)
df %>%
group_by(id1 = ifelse(id2 == 'a', id2, id1), id2) %>%
summarise(across(starts_with('n'), sum, na.rm = TRUE), .groups = "drop")
# id1 id2 n1 n2 n3 n4
# <chr> <chr> <dbl> <dbl> <dbl> <dbl>
#1 a a 4 3 1 1
#2 c d 0 1 1 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句