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

智慧大石
TA貢獻1946條經驗 獲得超3個贊
您可以獲取所有文件,然后循環使用lapply并應用您想要應用的任何功能,如下所示:
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 關注
- 1228 瀏覽
添加回答
舉報
0/150
提交
取消