2

R で 2 曲分のワード クラウドを作成しました。アイテムを表示するときに tdm で、曲 1 と曲 2 の単語の頻度を取得します。ワード クラウドを完全に印刷することもできます。私の問題は、頻度が 2 未満の単語を tdm に入れたくないということです。どうすればそれを行うことができますか。

私はコードを書き、この出力を得ました:

tdm=TermDocumentMatrix(corpus)

> tdm=as.matrix(tdm)
>
> tdm
>

song 1  song 2
act                   0  2
action                0  2
actions               0  1
activity              5  4

両方の曲で複数回発生するため、単語のアクティビティのみが必要です。つまり、言葉、行動、行動、行動を取り除きたいということです。どうやってやるの ?

4

1 に答える 1

4

次のようなものが機能するはずのデータを提供しませんでした:

data("crude")
tdm <- TermDocumentMatrix(crude)

x <- as.matrix(tdm)[, 1:2]
x[rowSums(apply(x, 2, ">", 1)) == 2, ]

説明: 行x <- as.matrix(tdm)[, 1:2]はデータのような 2 列を取得するだけなので何もしませんが、何も提供しなかったため、自分のように見えるデータを作成する必要がありました。この行apply(x, 2, ">", 1)は、ステートメントの論理値が 1 より大きいことを示しています。次に、これをrowSums(論理値は TRUE=1 および FALSE=0) でラップします。2 に等しい値 (> 1前に持っていましたが、これはずさんです) は、探している条件です。I use a logical index with this output x[GRAB_THE_ROWS, ]. 以下に示すように、各ステップを分割して自分でコードを実行できます。

(step_1 <- apply(x, 2, ">", 1))
(step_2 <- rowSums(step_1))
(step_3 <- step_2 == 2)
x[step_3, ]
于 2013-11-25T05:24:20.933 に答える