我需要將R中的一組命令應(yīng)用于目錄中的所有單個.txt文件(大約300個)。我對R不太熟悉,因此我在線上看到的有關(guān)循環(huán)的所有幫助都很令人困惑,或者當(dāng)您需要對每個文件應(yīng)用多個命令時,我無法弄清楚如何應(yīng)用循環(huán)。我需要應(yīng)用到目錄中每個文件(系統(tǒng)樹)的命令是(使用R的ape庫):testtree <- read.tree("tree123.txt")unrooted_tr <- unroot(testtree)write.tree(unrooted_tr, file="unrootedtree123.txt")如何應(yīng)用將這些命令應(yīng)用于每個單獨的.txt文件的循環(huán)(使用R或在Unix命令行中)?輸出(例如unrootedtree123.txt)將需要為每個單獨的文件使用不同的名稱。預(yù)先感謝,丹妮。
1 回答

智慧大石
TA貢獻1946條經(jīng)驗 獲得超3個贊
您可以獲取所有文件,然后循環(huán)使用lapply并應(yīng)用您想要應(yīng)用的任何功能,如下所示:
files <- list.files(path="path/to/dir", pattern="*.txt", full.names=TRUE, recursive=FALSE)
lapply(files, function(x) {
t <- read.table(x, header=TRUE) # load file
# apply function
out <- function(t)
# write to file
write.table(out, "path/to/output", sep="\t", quote=FALSE, row.names=FALSE, col.names=TRUE)
})
- 1 回答
- 0 關(guān)注
- 1236 瀏覽
添加回答
舉報
0/150
提交
取消