【问题标题】:Read multiple files and save data into one dataframe in R读取多个文件并将数据保存到 R 中的一个数据帧中
【发布时间】:2013-05-28 05:46:08
【问题描述】:

我正在尝试读取多个文件,然后将它们组合成一个数据帧。我使用的代码如下:

library(plyr)
mydata = ldply(list.files(path="Data load for stations/data/Predicted",pattern = "txt"), function(filename) {
  dum = read.table(filename,skip=5, header=F, sep=" ")

  #If you want to add the filename as well on the column

  dum$filename = filename
  return(dum)
})

我得到的错误如下:

Error in file(file, "rt") : cannot open the connection
In addition: Warning message:
In file(file, "rt") :
  cannot open file 'mobdata201001.txt': No such file or directory

数据文件可以在https://www.dropbox.com/sh/827kmkrwd0irehk/BFbftkks42找到

非常感谢任何帮助。

【问题讨论】:

  • 您是否尝试过仅使用您提供的路径和文件名加载一个文件?您收到的错误似乎找不到文件。也许只是在路径中添加一个额外的“/”?
  • 如果这些是与动物园一致的时间序列,那么read.zoo 可以读取多个文件,从中创建一个动物园对象。

标签: r dataframe plyr


【解决方案1】:

或者,您可以在list.files 中使用参数full.names

list.files(path="Data load for stations/data/Predicted",
           pattern = "txt", full.names=TRUE)

它会在文件名前自动添加完整路径。

【讨论】:

    【解决方案2】:

    试试下面的代码:

    library(plyr)
    path <- "Data load for stations/data/Predicted/"
    filenames <- paste0(path, list.files(path, pattern = "txt"))
    mydata = ldply(filenames, function(filename) {
      dum = read.table(filename,skip=5, header=F, sep=" ")
    
      #If you want to add the filename as well on the column
    
      dum$filename = filename
      return(dum)
    })
    

    我认为正在发生的事情是您正在生成一个相对于 list.files 中的路径的文件列表,然后要求 read.table 获取文件名而不使用路径的其余部分...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-13
      • 1970-01-01
      相关资源
      最近更新 更多