假设有以下数据:
df <- data.frame(Group = c(1, 1, 2, 2), A = c(1, 2, 3, 4), B = c(5, 6, 7, 8))
我们想按照 Group 分组,只保留每个分组的 A 列和 B 列的总和大于等于 10 的行,可以通过以下代码实现:
library(dplyr)
df_filtered <- df %>%
group_by(Group) %>%
filter(sum(A) + sum(B) >= 10)
这段代码首先使用 group_by
函数按照 Group 列进行分组,然后使用 filter
函数按照每个分组 A 列和 B 列的总和进行过滤,只保留总和大于等于 10 的行。最终的结果是:
# A tibble: 3 x 3
# Groups: Group [2]
Group A B
1 1 1 5
2 1 2 6
3 2 3 7