частичное совпадение со столбцом данных для выбора интересующих строк - PullRequest
1 голос
/ 01 ноября 2019

Скажем,

Я создаю фрейм данных как:

dataframe <- data.frame("x" = c("aaa/bbb", "ccc", "ddd/eee/fff"),
                 "y" = c(9,2,1),
                 "z" = c(7,5,8))

, а другой фрейм данных -

list <- data.frame("m" = c("ccc"))

, затем я могу выбрать строки совпадений из первого фрейма данных как:

result<-merge(list,dataframe,by.x= "m",by.y="x")

но как мне найти совпадение, если мой список данных в кадре:

list <- data.frame("m" = c("fff","bbb"))

Я ищу результаты, такие как:

    x           y   z
aaa/bbb         9   7
ddd/eee/fff     1   8

Спасибо.

1 Ответ

1 голос
/ 01 ноября 2019

Я думаю, что это не проблема слияния, а проблема фильтра. Вы можете попробовать это:

df1[grep(paste(df2$m, collapse = "|"), df1$x), ]

#             x y z
# 1     aaa/bbb 9 7
# 3 ddd/eee/fff 1 8

Не рекомендуется присваивать переменные существующим именам объектов или функций. Поэтому я изменяю ваши dataframe и list на df1 и df2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...