我正在尝试遍历数据框和列以生成多个图。我有一个数据框列表,对于每个数据框,我想针对几个预测变量之一绘制响应。
例如,我可以轻松地遍历数据框:
df1=data.frame(response=rpois(10,1),value1=rpois(10,1),value2=rpois(10,1))
df2=data.frame(response=rpois(10,1),value1=rpois(10,1),value2=rpois(10,1))
#Looping across data frames
lapply(list(df1,df2), function(i) ggplot(i,aes(y=response,x=value1))+geom_point())
但是我在数据框中的列之间循环时遇到了问题:
lapply(list("value1","value2"), function(i) ggplot(df1,aes_string(x=i,y=response))+geom_point())
我怀疑这与我对待美学的方式有关。
最终我想串起来lapply
生成数据框和列的所有组合。
任何帮助表示赞赏!
编辑:乔兰有!使用时必须将非列表响应放在引号中aes_string
lapply(list("value1","value2"), function(i) ggplot(df1,aes_string(x=i,y="response"))+geom_point())
作为参考,这里将lapply
函数串起来以生成所有组合:
lapply(list(df1,df2), function(x)
lapply(list("value1","value2"), function(i) ggplot(x,aes_string(x=i,y="response"))+geom_point() ) )