【发布时间】:2017-11-01 16:19:21
【问题描述】:
我想写一个嵌套循环到:
- 生成多个 ggplots
- 运行回归
我使用以下代码:
#create alternative data set
mtcars1 <- filter(mtcars, disp >= 100)
#create data, x variable, and y variable lists
data_list <- c('mtcars', 'mtcars_1')
x_list <- c('mpg', 'cyl', 'disp')
y_list <- c('hp', 'drat', 'wt')
#create empty lists for plots and regressions generated by loop
plots <- list()
regressions <- list()
#loop
for (i in length(data_list)){
for (j in 1:length(x_list)) {
for (k in 1:length(y_list)) {
plots[[i, j, k]] <- ggplot(data_list[i], aes_string(x = x_list[j], y = y_list[k])) +
geom_point(size = 2) +
xlab(x_list[j]) +
ylab(y_list[k])
regressions[[i, j, k]] <- lm(y_list[k] ~ x_list[j], data = data_list[i])
}
}
}
两个问题:
ggplot 数据输入是否有等效的“aes_string”?
我需要某种类型的对象,它存在于多个维度中并且可以容纳多种类型的对象。列表可以包含任何类型的对象,但是是一维的。数组可以有多个维度,但只能保存单个值。
也许我可以生成多个列表?
【问题讨论】:
标签: arrays r list loops ggplot2