我已经写了我的第一个函数,但是它不工作。我得到了错误:错误:运行函数时列var1
未知。
编辑:下面的代码是一个更大的代码块的一部分,它也产生图形,但这部分工作。
代码:
# Creating dummydata
a <- sample(letters[1:5], 500, rep = TRUE)
b <- sample(1:10, 500, rep = TRUE)
df1 <- data.frame(a, b)
create_barchart <- function(data, var1, var2) {
# Creating summary statistics
df <- data %>%
group_by(var1, var2) %>%
summarise(n=n()) %>%
group_by(var1) %>%
mutate(perc=100*n/sum(n))
}
create_barchart(df1, a, b)
2条答案
按热度按时间k4ymrczo1#
在
var1
和var2
周围放置{{...}}并删除df <-
。建议使用ungroup
终止group_by
。还要注意,
count({{var1}}, {{var2}})
可以用来代替group_by({{var1}}, {{var2}}) %>% summarize(n = n()) %>% ungroup
。sr4lhrrt2#
除了Grothendieck的答案之外,您还可以使用
enquo()
-!!
(发音为“Bang Bang”)对有关更深入的说明,您还可以查看blog post。