ループが繰り返されるたびに新しいplotxが作成されます。これは、私が別のグラフを生成するprint(plotx)を実行するときにうまく動作します。割り当てループがプロットで機能しない
私はそれぞれのプロット「plotx1」、「plotx2」などを呼び出すためにassignを使用して、各プロットを別々の名前として保存しました。 名前プロットをプロットすると、それらはすべてY = cと同じですが、y軸はループの元のYで正しくラベル付けされています!どうしたの? これを修正するにはどうすればよいですか?
dat = data.frame("d"= rep(c("bla1","bla2","bla3"),3),"a" = c(1:9), "b"=
c(19:11), "c"=rep(c(3,2,2),3))
X = "d"
listY = c("a","b","c")
z= 0
for (Y in listY){
z= z+1
plotx= ggplot(dat,
aes(x = dat[[X]], y = dat[[Y]])) +
geom_boxplot() +
scale_x_discrete(X) +
scale_y_continuous(Y)+
theme_bw()
print(plotx)
plot_name = paste0("plotx",z)
assign(plot_name , plotx)
}
plotx1
plotx2
plotx3
を使用してそれらをプロットすることができます。ループの後、 'Y'の値は' listY'の最後の値です。いくつかのオプションがあります: 'dat [[Y]]'を使うか、ggplotオブジェクトをgrobに変えることができます。 – Roland
これはループの外で同じプロットを取得する正しい理由です。 – Sal