R supprimer les mots vides à partir d'un caractère de vecteur à l'aide de %en%

J'ai un bloc de données avec des chaînes que je voudrais supprimer les mots vides de. J'essaie d'éviter d'utiliser le tm paquet comme c'est un grand ensemble de données et tm semble fonctionner un peu lentement. Je suis l'aide de la tm stopword dictionnaire.

library(plyr)
library(tm)

stopWords <- stopwords("en")
class(stopWords)

df1 <- data.frame(id = seq(1,5,1), string1 = NA)
head(df1)
df1$string1[1] <- "This string is a string."
df1$string1[2] <- "This string is a slightly longer string."
df1$string1[3] <- "This string is an even longer string."
df1$string1[4] <- "This string is a slightly shorter string."
df1$string1[5] <- "This string is the longest string of all the other strings."

head(df1)
df1$string1 <- tolower(df1$string1)
str1 <-  strsplit(df1$string1[5], " ")

> !(str1 %in% stopWords)
[1] TRUE

Ce n'est pas la réponse que je cherche. Je vais essayer d'obtenir un vecteur ou d'une chaîne de mots qui ne sont PAS dans le stopWords vecteur.

Ce que je fais mal?

Le problème est évident: string nbr 5 est grammaticalement incorrect. 🙂 . Ok, bien, je pense que Arun e bonne voie, en supposant que "mot" correspond à une chaîne de caractères sans les espaces. Après l'exécution de son code sur tous les éléments de df1$string, vous pourriez faire unique si vous voulez juste une liste, pas des quantités, des mots.

OriginalL'auteur screechOwl | 2013-03-06