【问题标题】:for loop to append files in R [duplicate]for循环在R中追加文件[重复]
【发布时间】:2016-09-13 17:00:48
【问题描述】:

我想编写一行代码来将多个文本文件相互附加以创建一个主列表。

我使用以下代码读取所有文件。

myfiles <- list.files(path = filepath, pattern = "txt", full.names = TRUE)

但想创建一个 for 循环,它将附加(将文件堆叠在一起)x # 个文件到一个主文本文件中,然后我可以输出。 有没有人有一个很好的循环程序可以解决这个问题?

【问题讨论】:

  • 检查一下:stackoverflow.com/questions/33565199/… 此外,rbind 可能会导致大量文件效率低下。如果你有很多文件要附加,plyr 包中的rbind.fill 会更有用。
  • for( i in myfiles ) cat( readLines( i ), "\n", file = "master.txt", append = TRUE )
  • 您也可以通过cat 简单地将这些文件连接到您的 Bash 中(这将在当前工作目录中“按行”连接所有 txt 文件):cat *.txt &gt; output.txt
  • @giraffehere 这很有帮助! - 问题:如何使用此代码将文件名包含为一列,以保持记录?
  • @user3100446 在for 循环中,向currentFile 添加一个名为“FromFile”或类似名称的列,并用您当前所在文件的名称填充该列。如果您使用与其他堆栈溢出问题相同的示例,这将是myFiles[i]。即:currentFile$FromFile &lt;- myFiles[i].

标签: r loops for-loop automation


【解决方案1】:

您可以使用lapply 方法

myfiles <- list.files(path = filepath, pattern = "txt", full.names = TRUE)
list_files<-lapply(myfiles,function(x) read.csv(x,stringsAsFactors=F))
master_file<-do.call(rbind,list_files)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-22
    • 2018-10-04
    • 2017-06-18
    • 2014-11-19
    • 2020-10-10
    • 2022-01-23
    • 1970-01-01
    • 2018-11-16
    相关资源
    最近更新 更多