如何将频率 table 转换为数据框以制作条形图?
How do i turn my frequency table into a dataframe to make a bar chart graph?
我认为标题并没有真正帮助,但是...让我们开始吧。
我有关于候选人推文的数据。它是一个数据框,其中一列名为“Tweets”(每一行我都有不同的推文)。我使用以下函数来生成频率 table:
frequencytable <- candidate$Tweets %>%
na.omit() %>%
tolower() %>%
strsplit(split = "[ .,!]") %>% # or strsplit(split = "\W")
unlist() %>%
gsub('[.?:!,"\n"]', '', .) %>%
table() %>%
sort(decreasing = TRUE)
在那之后,我得到了这样的结果(一个大的 table,没有列名,其中行是不同的词,它们对应的频率如下):
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,但我真的卡住了。
这里有三个解决方案,频率从 table 开始。
组成一个数据集。
set.seed(2020)
frequencytable <- table(sample(letters[1:4], 100, TRUE))
基础 R.
barplot(frequencytable)
现在,ggplot2
解决方案。先加载包。
library(ggplot2)
df1 <- as.data.frame(frequencytable)
ggplot(df1, aes(Var1, Freq)) + geom_col()
df2 <- stack(frequencytable)
ggplot(df2, aes(ind, values)) + geom_col()
我认为标题并没有真正帮助,但是...让我们开始吧。
我有关于候选人推文的数据。它是一个数据框,其中一列名为“Tweets”(每一行我都有不同的推文)。我使用以下函数来生成频率 table:
frequencytable <- candidate$Tweets %>%
na.omit() %>%
tolower() %>%
strsplit(split = "[ .,!]") %>% # or strsplit(split = "\W")
unlist() %>%
gsub('[.?:!,"\n"]', '', .) %>%
table() %>%
sort(decreasing = TRUE)
在那之后,我得到了这样的结果(一个大的 table,没有列名,其中行是不同的词,它们对应的频率如下):
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,但我真的卡住了。
这里有三个解决方案,频率从 table 开始。
组成一个数据集。
set.seed(2020)
frequencytable <- table(sample(letters[1:4], 100, TRUE))
基础 R.
barplot(frequencytable)
现在,ggplot2
解决方案。先加载包。
library(ggplot2)
df1 <- as.data.frame(frequencytable)
ggplot(df1, aes(Var1, Freq)) + geom_col()
df2 <- stack(frequencytable)
ggplot(df2, aes(ind, values)) + geom_col()