我正在尝试在循环中创建几个图(使用ggplot2),我正在使用下面的函数。
我使用了虹膜数据集并添加了一个名为" ran_fact的随机因子变量。所以数据集现在有四个数值变量和两个因子(Species和ran_fac)。
此时循环遍历数值变量并为每个变量创建一个图。在循环内手动设置两个因子变量(如图中的x轴和颜色),这使得它不太通用。我想知道是否可以将x轴和颜色选项设置为函数参数,如果是,可以如何进行?
提前谢谢。
另外,作为一个附带问题,select_if(x, is.numeric)
下面似乎没有从数据集中删除因子变量。
library(datasets)
library(dplyr)
library(ggplot2)
library(beeswarm)
data(iris)
iris$ran_fac <- as.factor(c("A", "B", "C", "D", "E"))
plotFunc <- function(x, na.rm = TRUE,...) {
plot_list = list()
nm <- select_if(x, is.numeric)
nm <- names(x)
for (i in seq_along(nm)) {
plots <-ggplot(x,aes_string("ran_fac", nm[i], color="Species")) + geom_quasirandom() + geom_boxplot()
plot_list[[i]] = plots
print(plots)
ggsave(plots,filename=paste("myplot",nm[i],".png",sep=""))
}
}
plotFunc(iris)