私はRを使った数式では新しく、いくつかの反復コードをよりコンパクトなものに変更するのにかなり苦労しています。 MrFlickのコメントで示唆されているように、私はすでに答えのセクションで見つかった作業ソリューションを投稿しました。R textminingデータフレームのサブセットで構造化されたコーパスを構築する
私の問題は、ここではwikispiral.orgで見ることができるように、いくつかの異なる分類を使用して、比較対象のワードクラウドにさまざまなコーパスを作成することです。このためには、元のデータフレームのサブセット(データフレームに存在するカテゴリ)に基づいて文字ベクトルのリストを作成する必要があります。次の例を参照してください:
element qty category1 category2
1 Adams Pearmain 2 Red small
2 Aia Ilu 1 Green big
3 Airlie Red Flesh 4 Red small
4 Akane 3 Green big
5 Åkerö 6 Yellow small
6 Alkmene 2 Orange big
7 Allington Pippin 1 Red small
8 Ambrosia 4 Red big
9 Anna 3 Green small
10 Annurca 6 Red big
11 Antonovka 2 Green small
12 Apollo 1 Yellow big
13 Ariane 4 Green small
14 Arkansas Black 3 Yellow big
15 Arthur Turner 6 Orange big
私は現在のようなwordcloudためのベクターの私のリストを作成しています:
## Subsetting two dataframes to category2 values
wordBig <- d[d$category2 == "big",]
wordSmall <- d[d$category2 == "small",]
## Extracting the vectors in the category1 columns
wordSmall <- as.vector(wordSmall$category1)
wordBig <- as.vector(wordBig$category1)
## Building the list for the corpus
wordALL <- list(wordBig, wordSmall) # Without list() it doesn' t work
そして最後に:
このデータフレームを与えるlibrary(wordcloud)
library(tm)
element <- c("Adams Pearmain ", "Aia Ilu ", "Airlie Red Flesh", "Akane ", "Åkerö ", "Alkmene", "Allington Pippin ", "Ambrosia ", "Anna ", "Annurca ", "Antonovka ", "Apollo ", "Ariane ", "Arkansas Black ", "Arthur Turner")
qty <- c(2, 1, 4, 3, 6, 2, 1, 4, 3, 6, 2, 1, 4, 3, 6)
category1 <- c("Red", "Green", "Red", "Green", "Yellow", "Orange", "Red", "Red", "Green", "Red", "Green", "Yellow", "Green", "Yellow", "Orange")
category2 <- c("small", "big", "big", "small", "small", "medium", "medium", "medium", big", "big", "small", "medium", "big", "very big", "medium")
d <- data.frame(element=element, qty=qty, category1=category1, category2=category2)
コーパス< - Corpus(VectorSource(wordALL)、readerControl = list(language = "実際にはwikispiral.orgの例では、カテゴリが「ビッグ」または「スモール」だけでなく、ウェブサイトのユーザーによって定義されたカテゴリの動的配列もあります。非常に予測不可能です)。固定されたカテゴリであっても、コードは反復的で醜いものになり、エラーを避けるために各次元の存在をテストしなければならなかった。comparative.wordcloud()
はカテゴリにNAsがある場合(「大きな」カテゴリのデータがない場合)
だから私の質問は:することができ、よりコンパクトなコードに前例の例を変換する方法: 1 - 分類欄 2でカテゴリを検出 - 文字ベクトル 3のリストを作成する - 多分やりますこのループを回避する...
MrFlickのアドバイスに従って回答セクションに記入した回答が見つかりました。
リクエストは[codereview.se]、スタックオーバーフローではないに属しています。特定のプログラミング問題に焦点を当てるように質問を編集する方がよいでしょう。あなたの解決策をレビューするように他の人に依頼するのではなく、別の解決策に同意した場合や他の解決策を投稿した場合に他の人が投票できる回答を貼り付けることができます。 – MrFlick
'd $ category2'の第2引数で' split'を使って "sub-data.frames"のリストを作成し、それらのサブセットで作業します。 –
あなたのご意見ありがとうございました。 –