2017-04-16 9 views
0

でストップワードを削除、私はこのコードを持っている:tidytextを使用してtidytext

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

は、私はそれは同じ名前のデータフレームにtidy_documentsと呼ばれるデータフレームを書き込むために、パッケージに組み込まれたストップワードを使用したいのですが、 stop_words内にある単語は削除されます。

このエラーが発生します:

エラー:一般的な変数はありません。 by paramと指定してください。 トレースバック:

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

'tidy_documents'と'あなたが一致する必要がありますのでstop_words'は、任意の変数名を共有することはありません'by'パラメータを使用する2つのデータセット。 – Axeman

+0

'stop_words'の列は' word'と呼ばれますので、 'anti_join'の' by'パラメータを使用する列名を指定してください。 – alistaire

+0

'tidy_documents'の列名は何ですか?私たちはあなたがそれを共有する場合、あなたが具体的にどのように設定するかを教えてくれます。 –

答えて

2

tidy_documentstop_wordsの両方がwordという名前の列の下にリストされている単語のリストを持っています。ただし、列は反転されます。stop_wordsでは、最初の列ですが、データセットでは2番目の列です。そのため、コマンドは2つの列に "一致"して単語を比較することができません。これを試してみてください:

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

byコマンドは関係なく、自分の位置、wordと呼ばれる列を比較するためのスクリプトを強制します。

2

あなたはこのような混乱anti_join()機能を使用しないようにfilter()単純に使用することができます。

明らか
tidy_documents <- tidy_documents %>% 
    filter(!word %in% stop_words$word) 
関連する問題