似乎每個涉及R中循環的問題都會遇到「循環不好」和「你做錯了」的建議使用list
或tapply
或什麼都不會。這是循環的有效實現嗎?
我學習R,並已實現了以下循環來創建映像文件每個因子的水平,因子水平每次換水的#我運行它:
for(i in unique(df$factor)) {
lnam <- paste("test_", i, sep="")
assign(lnam, subset(df, factor==i))
lfile <- paste(lnam, ".png", sep="")
png(file = lfile, bg="transparent")
with(get(lnam), hist(x, main = paste("Histogram of x for ", i, " factor", sep="")))
dev.off()
}
這工作。我想將它擴展到可能對這些子組(也輸出到文件)進行各種測試等。
這是循環的有效和合法使用嗎?或者有沒有一種首選的方法來剝皮這隻貓?
你也可以在循環之外使用'paste'函數。 – csgillespie 2012-01-12 08:12:03
謝謝 - 簡化是有道理的。雖然我可能正在對製作的數據框架執行其他「魔術」...... @csgillespie您的評論讓我感到困惑 - 那麼您將如何命名該文件? – Trees4theForest 2012-01-12 08:19:42
類似'lf = paste(「test_」,levels(df $ factor),「.png」,sep =「」'。當然,你需要改變'i'正在迭代的內容。在這種情況下,你下降的路線並沒有什麼區別。 – csgillespie 2012-01-12 08:24:37