【发布时间】:2020-03-29 09:07:20
【问题描述】:
我编写了一段代码,我想在不同的变量上运行
#ggplot frequency table
marso <- some_dataset %>%
count(some_variable)
##ggplot arrange
taart_marso <- marso %>%
arrange(desc(some_variable)) %>%
mutate(prop = round(n*100/sum(n), 1),
lab.ypos = cumsum(prop) - 0.5*prop)
head(taart_marso, 4)
##ggplot piechart
ggplot(taart_marso, aes(x = "", y = prop, fill = some_variable)) +
geom_bar(width = 1, stat = "identity", color = "white") +
geom_text(aes(y = lab.ypos, label = n), color = "black", x=1.4)+
coord_polar("y", start = 0)+
theme_void()
我将上面的内容粘贴到一个函数中,并尝试使用相同的变量和数据集调用该函数
piechart <- function(dataset, variable) {
mar <- dataset %>%
count(variable)
taart_mar <- mar %>%
arrange(desc(variable)) %>%
mutate(prop = round(n*100/sum(n), 1),
lab.ypos = cumsum(prop) - 0.5*prop)
ggplot(taart_mar, aes(x = "", y = prop, fill = variable)) +
geom_bar(width = 1, stat = "identity", color = "white") +
geom_text(aes(y = lab.ypos, label = n), color = "black", x=1.4)+
coord_polar("y", start = 0)+
theme_void()
}
piechart("some_dataset", "some_variable")
如果我这样做,我会收到以下错误:
UseMethod("group_by_") 中的错误: 'group_by_' 没有适用的方法应用于“字符”类的对象
谁能帮忙?
【问题讨论】:
-
为什么
x = ""在ggplot中
标签: r group-by dplyr count tidyverse