小编pvi*_*l00的帖子

有没有办法在 dplyr 中选择具有不同条件的组中的第一行?

我想为变量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)

r dplyr tidyverse

2
推荐指数
1
解决办法
986
查看次数

标签 统计

dplyr ×1

r ×1

tidyverse ×1