これをいくつかクリーンアップできますか? ReportPDF()に渡すオブジェクトのより具体的な例を挙げてください。私は、あなたが列を選択しているデータフレームと思われるものではなく、プロットオブジェクトを期待しています。 楽しい例にもいくつかのエラーがありますが、これはどういう意味ですか?
ReportPDF<-function(x){
pdf(paste(names(x),"Myfile.pdf"))
tb<-table(x$acolumn)
print(tb)
dev.off()
}
lapply(mylist,ReportPDF)
私はこれまで同様のことをしていると信じています。他の情報が得られたら、この回答を更新することができます。
ここでは、あなたのオブジェクトに関するいくつかの前提があります。 lmoが示唆するようにループにはfor
というループが使われていますが、より洗練された方法が存在しなければならないと思います。私はfor
ループを使用しています.lapplyはリストの各要素内のオブジェクトを渡します。リスト内の要素の名前は参照されません。ファイルの名前を個別に指定する必要があります。あなたの例でコードを壊している部分の一部であるmylist[i]
とmylist[[i]]
の呼び出しの違いに注意してください。あなたのコードでは、names(x)
はmylistの中にあるxの名前ではなく、x内の列の名前を取得します。
x <- data.frame(acolumn = rnorm(10))
q<- data.frame(acolumn = rnorm(10))
mylist <- list(a = x,b = q)
for(i in seq_along(mylist)){
filename <- paste(names(mylist[i]),'-myFile.pdf', sep = "")
pdf(filename)
plot(myList[[i]]$acolumn)
dev.off()
}
最後に関数に 'dev.off()'を追加してみてください。 – ytk
@ytk。私はそれをしました。同じエラーです。 –
私はこれで 'for'ループを使い、' pdf'と 'dev.off'にループをラップして一つのファイルを取得したり、ループの中に入れて複数のファイルを取得したりするかもしれません。 – lmo