你能清理一些嗎? 請給出一個更傳遞給ReportPDF()的對象的更具體的例子,我期望一個情節對象,而不是看起來像是你從中選擇一列的數據框。 有趣的ction示例也有一些錯誤,你的意思是?
ReportPDF<-function(x){
pdf(paste(names(x),"Myfile.pdf"))
tb<-table(x$acolumn)
print(tb)
dev.off()
}
lapply(mylist,ReportPDF)
我相信我以前做過類似的事情,當我得到其他信息時可以更新這個答案。
以下是對您的對象進行一些假設的更新。它使用一個for
循環,正如lmo所暗示的,但我認爲一個更優雅的方法必須存在。我使用的是for
循環,因爲lapply會傳遞列表中每個元素內的對象,而不會引用列表中元素的名稱 - 這是您需要單獨命名這些文件的名稱。請注意調用mylist[i]
和mylist[[i]]
之間的區別,這是您的示例中破壞代碼的一部分。在你的代碼中,names(x)
將獲得x中列的名稱,而不是x的名稱,因爲它在mylist中,這正是你想要的。
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