我在数据框中有20个变量(即数据),我希望从中获得直方图,箱形图和其他一些图形(为清楚起见,我提供了一个箱形图的示例)。我想通过变量' Group'对这些结果进行排序。我尝试用循环解决这个问题,以便将每个变量(列)转换为图形。 (我知道循环不受Stackoverflow程序员青睐,我欢迎所有其他解决方案)。在y轴上,我想打印20个变量中每个变量的名称。
for (i in 1:20) {
graph <- ggplot(data, aes(Group,data[,i]))
print(graph + geom_boxplot() + labs(x = "Group", y = VariableName[i]) +
theme_classic())
}
输出仅导致最后一个图形,这似乎是合理的,因为循环会覆盖输出。只要我能观察每个变量的输出,对我来说输出是保存在单独的文件中还是我可以在单独的窗口中查看它并不重要。
答案 0 :(得分:0)
使用lapply
来创建一个图表列表。没有可重现的例子,但这样的事情应该有效:
graphs <- lapply(1:20, function(i) {
ggplot(data, aes(Group, data[,i])) + geom_boxplot() +
labs(x = "Group", y = VariableName[i]) +
theme_classic())
}
您可以使用graphs[[index]]
访问每个图表。