4

データフレームと列の両方をループして、複数のプロットを作成しようとしています。データフレームのリストがあり、それぞれについて、いくつかの予測子の1つに対して応答をプロットしたいと思います。

たとえば、データフレーム間を簡単にループできます。

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() ) )
4

1 に答える 1

7

の内部ではaes_string()、すべての変数をとして表す必要がありますcharacter。「応答」を引用符で囲みます。

lapply(list("value1","value2"), 
       function(i) ggplot(df1, aes_string(x=i, y="response")) + geom_point())
于 2012-07-18T18:11:02.647 に答える