J'essaie de faire quelque chose de très simple (je pense) mais je n'arrive pas à le contourner. J'essaye d'écrire une boucle qui vérifie si une variable de caractère dans une trame de données contient l'une quelconque d'une certaine liste de sous-chaînes, et pour assigner une valeur correspondante à une variable fictive. Ainsi, imaginez un data.frame, n = 2000, avec une variable data.frame$text
. En outre, j'ai un vecteur de caractère contenant toutes les sous-chaînes que je veux texte data.frame$text
pour. Appelons-le hillary_exists
:R - boucler sur 2 objets
hillary_exists <- c("Hilary Clinton", "hilary clinton","hilaryclinton", "hillaryclinton", "HilaryClinton",
"HillaryClinton","Hillary Clinton", "Hillary Rodham Clinton", "Hillary", "Hilary", "#Hillary2016", "#ImWithHer",
"Hillary2016", "hillary", "hilary", "Clinton 2016", "Clinton", "Secretary of State Clinton",
"Senator Clinton", "Hilary Rodham", "Hilary Rodham Clinton", "Hilary Rodham-Clinton", "Hillary Rodham-Clinton")
Maintenant, je veux que ma boucle pour tester chaque ligne de data.frame$text
l'existence de tous les éléments de hillary_exists
, et si l'un d'eux est TRUE
, pour générer une nouvelle valeur de 1
pour la variable data.frame$hillary_mention
. Voilà ce que j'ai essayé:
for(i in hillary_exists){
if(grepl(hillary_exists[i], data.frame$text)){
data.frame$hillary_mention <- 1
} else {
data.frame$hillary_mention <- 0 }
}
Mais il est évident que je manque le composant i
pour l'élément data.frame$text
, mais je ne sais pas comment y remédier.
Toute aide serait grandement appréciée! Merci
Salut Avinash, merci pour votre commentaire, pouvez-vous élaborer un peu à ce sujet? Pour autant que je sache, c'est à peu près ce que j'ai fait, n'est-ce pas? – nikUoM
comme ça, 'data.frame $ hillary_mention [i] <- 1' –
Qu'en est-il de' data.frame $ hillary_mention <-sapply (data.frame $ text, fonction (s) any (grepl (s, hillary_exists))) '? –