хранить только группу в df1, которая присутствует в другом df, за исключением - PullRequest
0 голосов
/ 10 апреля 2020

Hel lo Чтобы сохранить только группу в 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

limited_df

Group col2
A AZ
A AP
A EZ
E GT

Ответы [ 2 ]

0 голосов
/ 10 апреля 2020

Здесь есть опция, использующая str_detect

library(dplyr)
library(stringr)
df2 %%>%
  filter(str_detect(Col2, "\\.")) %>%
  left_join(df1, by = 'Group') %>%
  select(-Col2)
0 голосов
/ 10 апреля 2020

Подмножество только тех групп из 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...