我想为变量a创建的每个组选择一行。它应该是变量c具有最高值的行,但如果变量b为 TRUE,则应选择该组内 b = TRUE 且 c 最大的行。
我有以下代码:
set.seed(42)
a <- rep(1:3, each = 3)
b <- sample(c(0,1), size = 9, replace = T)
c <- sample(1:9, size = 9, replace = F)
df <- data.frame(a = a,
b = b,
c = c)
df %>% group_by(a) %>% filter(b == 1) %>%
arrange(desc(c), .by_group = T) %>%
summarise_all(function(x) x[1]) -> df1
df %>% group_by(a) %>% filter(all(b != 1)) %>%
arrange(desc(c), .by_group = T) %>% …Run Code Online (Sandbox Code Playgroud)