使用带有向量的dplyr的子集数据帧

时间:2019-05-07 23:00:26

标签: r dplyr

我知道如何使用dplyr,但是在这里我被卡住了

我有一个向量,例如:

v <- c("A","B","C")

和数据框,例如

Groups letters 
G1 A
G1 B
G1 C
G1 C
G2 A
G2 C
G3 A
G3 A
G3 C
G4 C

我想只保留拥有所有Groups的{​​{1}}。

,然后在此示例中仅保留G1,因为存在letters中存在的所有A,BC

我尝试过:

v

1 个答案:

答案 0 :(得分:1)

可能有更短的方法,但这应该可行。首先,我们将数据限制为V中的行,然后计算该组中有多少个字母,并将其与V中的唯一字母数进行比较。最后,将原始数据加入到仅包含所有字母的组中。

filtred_df %>%
  filter(letters %in% v) %>%  # Only care about letters that are in V
  count(Groups, letters) %>%   # or distinct(Groups, letters) %>%
  count(Groups) %>%
  filter(n == length(unique(v))) %>%
  select(-n) %>%
  left_join(filtred_df)