Строки данных из других данных - PullRequest
0 голосов
/ 13 января 2019

из кадра данных со строкой

 df1 <- data.frame(col1 = c("Here is my text", "another effort of my text", "final effort of my text"))

И наличие второго кадра данных с другими словами:

df2 <- data.frame(col2 = c("my", "text"))

Как можно удалить слова из df1, которые есть в df2? Чего ожидать:

data.frame(col1 = c("Here is ", "another effort of ", "final effort of "))

Ответы [ 2 ]

0 голосов
/ 13 января 2019

Вот решение с использованием vapply

words_remove <- as.character(.subset2(df2,1L))
strings <- strsplit(as.character(.subset2(df1,1L)),' ')
data.frame(col1 = vapply(seq_along(strings),
       function (k) {
        current_words <- strings[[k]]
        paste(current_words[!(current_words %in% words_remove)], collapse = ' ')
       }, character(1))
)
#                col1
# 1           Here is
# 2 another effort of
# 3   final effort of

Обратите внимание, что пробелы в конце не сохраняются - при необходимости это можно реализовать.

0 голосов
/ 13 января 2019

Может быть, это?

library(tidyverse)
    df1 %>% 
      mutate(col1=str_remove_all(df1$col,"my text"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...