(Sto usando R.) Per un elenco di parole che si chiama "goodwords.corpus", eseguo il ciclo dei documenti in un corpo e sostituisco ciascuna delle parole nell'elenco "goodwords.corpus" con la parola + un numero.Fare in modo che gsub sostituisca solo parole intere?
Così, per esempio, se la parola "buono" è sulla lista, e "buona notte" non è nella lista, allora questo documento:
I am having a good time goodnight
si trasformerebbe in:
I am having a good 1234 time goodnight
** sto usando questo codice (EDIT- fatto questa riproducibile):
goodwords.corpus <- c("good")
test <- "I am having a good time goodnight"
for (i in 1:length(goodwords.corpus)){
test <-gsub(goodwords.corpus[[i]], paste(goodwords.corpus[[i]], "1234"), test)
}
Tuttavia, il problema è che voglio gsub soltanto sostituire l'intera wo RDS. Il problema che si pone è che: "buono" si trova nell'elenco "goodwords.corpus", ma anche "buonanotte", che NON è nell'elenco, è interessato. Così ottengo questo:
I am having a good 1234 time good 1234night
C'è qualche cosa che posso dire gsub sostituire solo parole intere, e non le parole che potrebbero essere una parte di altre parole?
voglio usare questo:
test <-gsub("\\<goodwords.corpus[[i]]\\>", paste(goodwords.corpus[[i]], "1234"), test)
}
Ho letto che il \ < e \> vi dirà gsub a guardare solo le parole intere. Ma ovviamente questo non funziona, perché goodwords.corpus [[i]] non funzionerà quando è tra virgolette.
Qualche suggerimento?
Per favore riproduci il tuo esempio riproducibile: http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –
Sì. Per favore fallo. Hai un'opportunità qui. GG è un maestro riconosciuto di soluzioni regex. –
Solo post originale modificato con codice riproducibile. Grazie mille!! – user2303557