Хранить слово в кадре данных - PullRequest
0 голосов
/ 22 мая 2018

Используя этот пример ответа

Я пытаюсь использовать его, чтобы сохранить слова в целом столбце.

Я использую это:

df <- data.frame(text = c ("Hi this is an example", "Hi this is an example", "Hi this is an example", "Hi this is an example"))
words <- c("this", "is", "an", "example")
paste(intersect(strsplit(df$text, "\\s")[[1]], words), collapse=" ")

Но я получаю эту ошибку:

Error in strsplit(df$text, "\\s") : non-character argument

Что я могу сделать?

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Учитывая, что вы хотите применить функцию для каждого текста в вашем фрейме данных, следующий код должен делать то, что вам нужно:

df <- data.frame(text = c ("Hi this is an example", "Hi this is an example", "Hi this is an example", "Hi this is an example"))
words <- c("this", "is", "an", "example")

df$new_column <- sapply(as.character(df$text), function(x) {
  return(paste(intersect(strsplit(x, "\\s")[[1]], words), collapse=" "))
})

print(df$new_column)

И с другим примером data.frame:

df <- data.frame(text = c ("Hi this is an example", "Hi this was an example", "Hi this still is an example", "Hi this is another example"))
words <- c("this", "is", "an", "example")

df$new_column <- sapply(as.character(df$text), function(x) {
  return(paste(intersect(strsplit(x, "\\s")[[1]], words), collapse=" "))
})

print(df$new_column)

Надеюсь, это поможет!:)

0 голосов
/ 22 мая 2018

df $ текст является фактором.Попробуйте:

df <- data.frame(text = c ("Hi this is an example", "Hi this is an example", "Hi this is an example", "Hi this is an example"))
words <- c("this", "is", "an", "example")
paste(intersect(strsplit(as.character(df$text), "\\s")[[1]], words), collapse=" ")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...