我有一个文本文件,我用tm
包编写了一些命令,找到了整个单词的频率。现在我想得到频率分别为一,二或三的单词列表。
我怎么能这样做?
frequency <- colSums(dtm2)
frequency <- sort(frequency, decreasing=TRUE)
words <- names(frequency)
words
words[1]
如你所见,最后一个命令返回一个频率最高的单词,在我的例子中,这个单词是&#34;没有&#34;但是我想要那些没有重复或重复过两次或三次的单词列表。
TNX
答案 0 :(得分:0)
在R中,短语x[x.freq < 4]
将返回x中满足x.freq < 4
的所有值。你可能希望使用类似的东西,可能是你所谓的frequency
变量,尽管你可能首先要对它进行一些不同的格式化。
答案 1 :(得分:0)
予。存储有单词的矢量df
:
> df <- c("AAA","BB","DD","AA","AAA","CCC","PP","PP","CC","LL","OOO","LL","CC","AAA")
> df
# [1] "AAA" "BB" "DD" "AA" "AAA" "CCC" "PP" "PP" "CC" "LL" "OOO" "LL"
# [13] "CC" "AAA"
II。表格显示每个单词的频率:
> table(df)
# df
# AA AAA BB CC CCC DD LL OOO PP
# 1 3 1 2 1 1 2 1 2
III。 result
数据框中存储的每个单词的频率
> result <- as.data.frame(table(df))
> result
# df Freq
# 1 AA 1
# 2 AAA 3
# 3 BB 1
# 4 CC 2
# 5 CCC 1
# 6 DD 1
# 7 LL 2
# 8 OOO 1
# 9 PP 2
IV。通过降低频率对单词进行排序:
> result[order(result$Freq,decreasing=T),]
# df Freq
# 2 AAA 3
# 4 CC 2
# 7 LL 2
# 9 PP 2
# 1 AA 1
# 3 BB 1
# 5 CCC 1
# 6 DD 1
# 8 OOO 1
诉指定单词的频率:
> result[result$df=="AAA",]
# df Freq
# 2 AAA 3
> result[result$df=="LL",]
# df Freq
# 1 LL 2
> result[result$df=="DD",]
# df Freq
# 6 DD 1
VI。通过指定频率的单词:
> unique(df[which(result$Freq == 1)])
# [1] "AAA" "DD" "CCC" "PP"
> unique(df[which(result$Freq == 2)])
# [1] "AA" "PP" "CC"
> unique(df[which(result$Freq == 3)])
# [1] "BB"
> unique(df[which(result$Freq == 4)])
# character(0)