Подмножество df на основе частично совпадающих столбцов - PullRequest
0 голосов
/ 25 сентября 2018

Я бы хотел установить свою df на основе частичного совпадения между 2 столбцами.Пример моего df: A B value 1 ABCDEFG CDEF 25 2 HIJKLMN CDEF 36 3 OPQRST CDEF 21 4 ABCDEFG KLMN 25 5 HIJKLMN KLMN 69 6 OPQRST KLMN 98 7 ABCDEFG PQR 85 8 HIJKLMN PQR 74 9 OPQRST PQR 58

structure(list(A = structure(c(1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L,3L), .Label = c("ABCDEFG", "HIJKLMN", "OPQRST"), class = "factor"), B = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L), .Label = c("CDEF", "KLMN", "PQR"), class = "factor"), value = c(25L, 36L, 21L,25L, 69L, 98L, 85L, 74L, 58L)), .Names = c("A", "B", "value"), class = "data.frame", row.names = c(NA, -9L))

Я хотел бы установить поднаборы строк, где столбец B частично совпадает со столбцом A. Для этого примера ожидаемый результат будет:

A B value 1 ABCDEFG CDEF 25 2 OPQRST PQR 58 3 HIJKLMN KLMN 69

1 Ответ

0 голосов
/ 25 сентября 2018

Опция будет

library(tidyverse)
df1 %>% 
   filter(str_detect(A, as.character(B)))
#        A    B value
#1 ABCDEFG CDEF    25
#2 HIJKLMN KLMN    69
#3  OPQRST  PQR    58
...