有时在执行探索性分析或生成报告时,我们希望绘制许多变量的单变量分布。经过一些整洁的技巧后,我可以在情节上做到这一点,但是有有序的因素,我想让它们在情节上保持有序。
因此,为了以更有效的方式完成它,我构建了一个简单的dplyr
/ggplot
基于函数。我在下面使用vcd
包的关节炎数据集制作了这个例子。
library(dplyr)
library(ggplot2)
data(Arthritis, package = "vcd")
head(Arthritis)
plotUniCat <- function(df, x) {
x <- enquo(x)
df %>%
filter(!is.na(!!x)) %>%
count(!!x) %>%
mutate(prop = prop.table(n)) %>%
ggplot(aes(y=prop, x=!!x)) +
geom_bar(stat = "identity")
}
plotUniCat(Arthritis, Improved)
我可以用很短的方式绘制一个格式化的图表,这很酷,但只有一个变量。
我试图用 for 循环调用多个变量,但它不起作用。代码运行,但没有任何反应。
variables <- c("Improved", "Sex", "Treatment")
for (i in variables) {
plotUniCat(Arthritis, noquote(i))
}
我对此进行了搜索,但对我来说仍然不清楚。有人知道我做错了什么或如何使它工作吗?
提前致谢。