2017-08-25 78 views
1

我有這個數據幀規模在詞雲

df <- structure(list(word = structure(c(1L, 12L, 23L, 34L, 43L, 44L, 
45L, 46L, 47L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 13L, 
14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 24L, 25L, 26L, 27L, 
28L, 29L, 30L, 31L, 32L, 33L, 35L, 36L, 37L, 38L, 39L, 40L, 41L, 
42L), .Label = c("word1", "word10", "word11", "word12", "word13", 
"word14", "word15", "word16", "word17", "word18", "word19", "word2", 
"word20", "word21", "word22", "word23", "word24", "word25", "word26", 
"word27", "word28", "word29", "word3", "word30", "word31", "word32", 
"word33", "word34", "word35", "word36", "word37", "word38", "word39", 
"word4", "word40", "word41", "word42", "word43", "word44", "word45", 
"word46", "word47", "word5", "word6", "word7", "word8", "word9" 
), class = "factor"), frq = c(1975L, 1665L, 1655L, 1469L, 1464L, 
1451L, 1353L, 1309L, 1590L, 1545L, 1557L, 1556L, 1130L, 1153L, 
1151L, 1150L, 1144L, 1141L, 1115L, 194L, 195L, 135L, 135L, 130L, 
163L, 167L, 164L, 159L, 153L, 145L, 143L, 133L, 133L, 153L, 153L, 
150L, 119L, 115L, 115L, 115L, 114L, 113L, 113L, 113L, 115L, 102L, 
101L)), .Names = c("word", "frq"), class = "data.frame", row.names = c(NA, 
-47L)) 

而且我想創建一個基於頻率的詞雲。

爲了使這個詞雲我使用此代碼行:

library(wordcloud2) 
wordcloud2(df, color = "random-light", backgroundColor = "green") 

不過,我面臨的一個問題是,雲詞不具備所有的話。當我提到所有的詞時,我的意思是這些詞的最低頻率。

爲了讓詞雲中的所有單詞都具有任何比例,並且爲了查看所有單詞,最頻率的單詞要小一些?

正如我可以理解這種情況發生,因爲最高頻率在列表

+0

如果使用wordcloud,你有一個簡單的min.freq參數來設置
'library(wordcloud); wordcloud(min.freq = ...)'。當然,這是一個不同的庫相比,你正在使用 –

回答

1

您應該直接重新調整你的頻率與其他大的差別。例如,你可以這樣做:

p_scaled = p^(1/n) n足夠大,以至於即使具有最低頻率的詞語也會出現在詞雲上。

+0

謝謝你的答案,請你可以給一個代碼示例?帶有p值的示例是指第二個頻率列的值,並且n是數據幀具有的總行數? – Sasak

+0

我建議你按照關於data.frame對象的教程。您需要對frq列進行標準化,將每行的總和除以總和,然後應用轉換。 –