2017-04-16 8 views
0

Mit tidytext, ich habe diesen Code:Entfernen Stoppwörter mit tidytext

data(stop_words) 
tidy_documents <- tidy_documents %>% 
     anti_join(stop_words) 

ich es die Stoppwörter in das Paket gebaut verwenden möchten einen Datenrahmen genannt tidy_documents in einen Datenrahmen mit dem gleichen Namen zu schreiben, aber mit den Wörtern entfernt, wenn sie in stop_words sind.

ich diesen Fehler:

Fehler: Keine gemeinsame Variablen. Bitte geben Sie by param. Traceback:

1. tidy_documents %>% anti_join(stop_words) 
2. withVisible(eval(quote(`_fseq`(`_lhs`)), env, env)) 
3. eval(quote(`_fseq`(`_lhs`)), env, env) 
4. eval(expr, envir, enclos) 
5. `_fseq`(`_lhs`) 
6. freduce(value, `_function_list`) 
7. withVisible(function_list[[k]](value)) 
8. function_list[[k]](value) 
9. anti_join(., stop_words) 
10. anti_join.tbl_df(., stop_words) 
11. common_by(by, x, y) 
12. stop("No common variables. Please specify `by` param.", call. = FALSE) 
+0

Klar 'tidy_documents' und' stop_words' keine Variablennamen teilen, so dass Sie die übereinstimmen müssen werde zwei Datasets mit dem Parameter 'by'. – Axeman

+0

Die Spalte von 'stop_words' heißt' word', also benennen Sie entweder Ihre Spalte oder verwenden Sie den 'by' Parameter von' anti_join'. – alistaire

+0

Wie lauten die Spaltennamen in 'tidy_documents'? Wir können Ihnen genau sagen, wie Sie den Join einrichten, wenn Sie ihn teilen. –

Antwort

2

Beide tidy_document und stop_words haben eine Liste von Wörtern in einer Spalte aufgeführt word genannt; Die Spalten sind jedoch invertiert: In stop_words ist es die erste Spalte, während es in Ihrem Dataset die zweite Spalte ist. Aus diesem Grund kann der Befehl die beiden Spalten nicht "abgleichen" und die Wörter vergleichen. Versuchen Sie folgendes:

tidy_document <- tidy_document %>% 
     anti_join(stop_words, by = c("word" = "word")) 

Die by Befehl zwingt das Skript die Spalten zu vergleichen, die word, unabhängig von ihrer Position genannt werden.

2

Sie können die einfachere Verwendung filter() mit der verwirrenden anti_join() Funktion wie diese zu vermeiden:

tidy_documents <- tidy_documents %>% 
    filter(!word %in% stop_words$word) 
Verwandte Themen