【发布时间】:2021-03-30 01:19:27
【问题描述】:
我认为标题并没有真正的帮助,但是......我们走吧。
我有关于候选人推文的数据。它是一个数据框,其中一个名为“推文”的列(每一行我都有不同的推文)。我使用以下函数制作了频率表:
frequencytable <- candidate$Tweets %>%
na.omit() %>%
tolower() %>%
strsplit(split = "[ .,!]") %>% # or strsplit(split = "\\W")
unlist() %>%
gsub('[.?:!,"\n"]', '', .) %>%
table() %>%
sort(decreasing = TRUE)
之后,我得到了这样的结果(一个大表,没有列名,其中行是不同的单词,它们对应的频率如下):
hello bye good money red
567 321 22 61 98
dput 格式:
frequencytable <-
c(hello = 567L, bye = 321L, good = 22L, money = 61L, red = 98L)
(想象数字在单词下方)等等(我认为我有大约 500 次出现)............
现在我想在一个简单的条形图中显示这些结果,但我很努力。
我尝试过类似的方法:
ggplot(data = candidate$Tweets) +
geom_bar(mapping = aes(x = frequencytable))
没用... 我做了一些研究,发现了一些技巧,例如:将其转换为数据框,然后继续使用 ggplot,但我真的卡住了。
【问题讨论】:
-
也许可以试试
stack()? -
行是不是 “不同的词,其对应的频率低于”,你有的是一个命名向量。
-
没有看到您的数据,很难提供准确的答案。但这里有一些建议。 ggplot,适用于数据帧而不是向量,因此首先将您的频率表转换为数据帧。另外,既然你们都准备好了频率计数,那么您想使用
geom_col()而不是geom_bar()。祝你好运。 -
@Dave2e 谢谢你,戴夫! geom_col 很合适!
标签: r string dataframe bar-chart frequency-table