【发布时间】:2020-09-08 16:59:29
【问题描述】:
您好,假设我有一个 df,例如:
Groups COL1
G1 4
G1 32
G1 43
G2 43
G2 23
G2 0
G3 2
G3 4
G4 2
G4 1
我只想保留至少一个 COL1 值 >5 的组
为此我使用:
df %>%
group_by(Groups) %>%
filter(any(COL1 >5))
我应该得到:
Groups COL1
G1 4
G1 32
G1 43
G2 43
G2 23
G2 0
但现在让我们说我想这样做,但我想将组保留在某个列表中:list
如果一个组在该列表中,我仍然保留该组(即使所有值都
Groups COL1
G1 4
G1 32
G1 43
G2 43
G2 23
G2 0
G4 5
G4 5
我保留了 4,因为它在列表中
【问题讨论】:
-
你可以简单地做
df %>% group_by(Groups) %>% filter(any(COL1 > 5) | Groups %in% lst)。 -
如果我有很多
filter(any())行怎么办?每次都要加这个吗? -
“很多
filter(any())行”是什么意思?你的意思是你有更多的列(COL2,COL3,...)需要传递给filter(),或者你有更多的条件只是COL1?最好针对扩展问题调整您的示例。如果您认为您接受的答案足够好,您可以跳过此评论。