您好,我有一个df,例如:
Groups COL2 COL3
G1 2 8
G1 3 4
G1 0 3
G2 1 3
G2 9 4
G3 3 89
G3 3 5
G4 1 7
G4 2 3
并且我只想选择至少满足以下两个条件的组:COL2 < 3
和COL3 > 5
。因此,在这里我将仅选择组G1
和G4
。
Groups COL2 COL3
G1 2 8
G1 3 4
G1 0 3
G4 1 7
G4 2 3
我试过了:
df%>%
group_by(Groups) %>%
filter(any(COL2 <3) & any(COL3 >5)) %>%
如果只想选择至少一行同时满足两个条件的组(而不是使条件在组中至少满足一次),则可以使用以下命令。
# create vector of groups that satisfy the conditions
ok_groups <- (df %>%
group_by(Groups) %>%
filter(COL2 <3 & COL3 >5))$Groups
# filter original dataframe according to ok_groups
df %>% filter(Groups %in% ok_groups)
输出量
> ok_groups
# [1] "G1" "G4"
> df %>% filter(Groups %in% ok_groups)
# Groups COL2 COL3
# 1 G1 2 8
# 2 G1 3 4
# 3 G1 0 3
# 4 G4 1 7
# 5 G4 2 3
我只是在这里插入一个较短的解决方案,供将来的观众使用
df %>%
group_by(Groups) %>%
filter(any(COL2 < 3 & COL3 > 5))
# Groups COL2 COL3
# 1 G1 2 8
# 2 G1 3 4
# 3 G1 0 3
# 4 G4 1 7
# 5 G4 2 3
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句