从R中的字云中删除特定单词

时间:2013-11-25 05:10:56

标签: r word-cloud

我在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

我只想要单词活动,因为它在两首歌中不止一次出现。 我的意思是我想删除单词,行为,动作,动作。我怎么能这样做?

1 个答案:

答案 0 :(得分: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,但这很邋))是您正在寻找的条件。我使用此输出x[GRAB_THE_ROWS, ]的逻辑索引。您可以撕开每一步并为自己运行代码,如下所示:

(step_1 <- apply(x, 2, ">", 1))
(step_2 <- rowSums(step_1))
(step_3 <- step_2 == 2)
x[step_3, ]