选择一组行(如果其中一行具有所需属性)

问题描述 投票:0回答:1

我有一个像这样的数据框:

data <- data.frame(family.id = rep(1:6, each = 5),
member.id = rep(1:5, times = 6),
attribute = c(1,1,2,3,4,1,2,2,3,5,1,1,3,5,5,2,3,3,4,5,1,1,4,4,5,3,3,4,5,5) )

我想选择所有家庭成员,前提是其中至少有一个成员的属性等于 4。 请告诉我我该怎么办?

我更喜欢使用 dplyr 中的“group_by”命令。 请告诉我我该怎么办?

r dplyr group-by
1个回答
0
投票
data %>% 
  filter(any(attribute == 4), .by = family.id)

   family.id member.id attribute
1          1         1         1
2          1         2         1
3          1         3         2
4          1         4         3
5          1         5         4
6          4         1         2
7          4         2         3
8          4         3         3
9          4         4         4
10         4         5         5
11         5         1         1
12         5         2         1
13         5         3         4
14         5         4         4
15         5         5         5
16         6         1         3
17         6         2         3
18         6         3         4
19         6         4         5
20         6         5         5
© www.soinside.com 2019 - 2024. All rights reserved.