0

別の d_ply 関数内で .pdf への数百の数字の書き込みを自動化する d_ply 関数をラップして、別のカテゴリ変数による pdf の書き込みをグループ化したいと思います。データ フレームは次のようになります。

site  category  code value
1      first    x     10
1      first    y     8
1      second   x      30
2      first    x     3

フィールド タイプは、サイト = 数値、カテゴリ = 文字、コード = 文字、値 = 数値です。

このコードは私が望むことを達成しますが、各pdfに1つのプロットのみを書き込むため、結果は約20個のファイルになり、カテゴリに関連付けられた各コードのプロットではなく、1つのプロットが含まれます. 残りのプロットはモニター上でちらつきます。次にpdfが閉じ、次が開きます。繰り返す。

d_ply(df,"category",function(x){
pdf(file=paste(unique(x$category),".pdf"))
    d_ply( df, "code", function(y) {
    plot(data=y, value~site, xlab=names(df[1]),ylab=unique(y$code))
dev.off()
})    

})

このコードはすべてのプロットを各カテゴリに書き込むため、結果は約 20 個のファイルになり、それぞれに 300 個のプロットすべてが含まれます。

d_ply(df,"category",function(x){
pdf(file=paste(unique(x$category),".pdf"))
    d_ply( df, "code", function(y) {
    plot(data=y, value~site, xlab=names(df[1]),ylab=unique(y$code))

})    
dev.off()
})

コメントありがとうございます。

更新: 上記の問題を解決したので、解決策を伝えます。このコード ブロックは、df と関連するフィールド ID が df に存在すると仮定して機能します。このコードは、df のレコード ブロックを読み取り、それらをカテゴリ変数でグループ化し、カテゴリ別に数値フィールドをプロットし、リーチ カテゴリについて繰り返し、pdf を閉じます。他のステートメントは、ファイルを記述し、フィールド ヘッダーを変更し、ランタイムを報告するだけです。

all<-as.data.frame(read.csv(filename.csv', header=TRUE))                                      
is.data.frame(all)
   dim(all)    
   head(all)
   names(all)<-tolower(names(all))
   names(all)
count(all,"parametername")
ptm<-proc.time()
pdf(file="export.pdf")  
d_ply(all,"name",function(x) {
   plot(data=x,value~dce.id, xlab=names(all[1]), ylab=unique(x$name))
   })
dev.off()  
proc.time() -ptm 
4

0 に答える 0