首页 > 解决方案 > 仅将 Group 保留在 df1 中,这些 Group 存在于另一个 df 中,但有例外

问题描述

为了只保留 df1 中存在的 df2 组中的组,我使用:

restricted_df<-df1[df1$Group %in% df2$Group,]

但是如何在%in% df2$Group哪里做同样的事情df2$col2 contain a point。`?

这是一个例子

df1

Group col2
A AZ
A AP
A EZ
B EA
B RT
C ES
D TR
E GT

df2

Group Col2
A ok.l
C ok
E ok.po

受限的_df

Group col2
A AZ
A AP
A EZ
E GT

标签: r

解决方案


df2仅对具有的那些组进行子集'ok'

df1[df1$Group %in% df2$Group[grepl('\\.', df2$Col2)],]

#  Group col2
#1     A   AZ
#2     A   AP
#3     A   EZ
#8     E   GT

或使用连接dplyr

library(dplyr)

df2 %>%
  filter(grepl('\\.', Col2)) %>%
  left_join(df1, by = 'Group') %>%
  select(-Col2)

推荐阅读