为了账号安全,请及时绑定邮箱和手机立即绑定

循环遍历R中目录中的所有文件,应用多个命令

循环遍历R中目录中的所有文件,应用多个命令

梦里花落0921 2019-11-14 09:28:19
我需要将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)

})


查看完整回答
反对 回复 2019-11-14
  • 1 回答
  • 0 关注
  • 1150 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信