数百の散布図の生成を自動化したいのですが、サブセット化を処理するコンパクトな方法ではうまくいきません。データ フレームには、対象となる 3 つのフィールドがあります。
site code value
1 x 30
1 y 14
1 z 12
2 x 35
2 y 19
等、
ここで、サイト = 数値、値 = 数値、コード = グループ化変数。
約 400 のサイトと 300 のコードがあります。
私が欲しいもの:
- field =code に基づいて df をサブセット化します
- x=サイト vs y=値を散布図としてプロット
- 各散布図を .pdf の個別のページに書き込む
- プロセスを自動化する
コメントをお待ちしております。たとえば、このアプローチでは、'subset' must evaluate to logical というエラーが生成されます。ラップリーコールも機能しない場合があります。
dfarray<-list(subset(df,df[,2]))
pdf(file="test.pdf")
figures<-lapply(dfarray, function(i) {(plot(i$[,1],i$[,3]))
})
dev.off()
どうもありがとう
d_ply を組み込むとうまくいきました。この結果には満足していますが、X、Y 軸のラベル ステートメントの何が問題なのか誰か指摘できますか? (注: このコード ブロックは、サブセットごとに 1 つの pdf になります)
names(df)<-tolower(names(df))
names(df)
d_ply(df,"code",function(x){
pdf(file=paste(unique(x$code),".pdf"))
plot(data=x,value~site, xlab=names(x[1]),ylab=as.name(x$code))
dev.off()
})
更新: 以下は、データフレーム df が存在すると仮定した場合の、このコードの 2 つの機能バージョンです。これは、各グループの散布図を個別の .pdf に書き込みます。
names(df)<-tolower(names(df)
names(df)
d_ply(df,"code",function(x){
pdf(file=paste(unique(x$code),".pdf"))
plot(data=x, value~site, xlab=names(df[1]),ylab=unique(x$code))
dev.off()
})
これは、グループごとに 1 つずつ、すべての散布図を 1 つの .pdf に書き込みます。
names(df)<-tolower(names(df)
names(df)
pdf(file="df_all.pdf")
d_ply( df, "code", function(x) {
plot(data=x, value~site, xlab=names(df[1]), ylab=unique(x$code))
})
dev.off()