【问题标题】:how to select list of directory and read files from those directory in R [duplicate]如何在R中选择目录列表并从这些目录中读取文件[重复]
【发布时间】:2014-08-31 16:26:34
【问题描述】:

我正在尝试选择一些特定的目录并从每个目录中读取一个特定的文件。

这是目录和文件的示例

|-out_original
|-----result_file
|-out_20percent_ds
|-----result_file
|-out_40percent_ds
|-----result_file
|-out_60percent_ds
|-----result_file
|-out_80percent_Ds
|-----result_file

代码

setwd("/home/data/proj/")
datatype = c("20","40","60","80","original")
filenames=as.vector(c(0))

for (i in 1:length(datatype))
{
    if(i <= 5){
        filenames[i]=paste0("out_",datatype[i],"percent_ds/")
    }

    else{   
        filenames[i]=paste0("out_",datatype[i])
    }
}

如何将文件从每个目录保存到变量中?

【问题讨论】:

  • 我认为您的意思是“将变量保存到文件中”。你有什么样的变量,你希望它们存储在什么样的文件中?
  • 有什么问题?为什么简单的 write(x, file) (或 write.csv 或类似文件)会失败?是否需要创建目录(参见 ?dir.create)?
  • 所以经过一番讨论,问题似乎在于读取多个制表符分隔的文件。
  • 这里还有一个很好的副本:stackoverflow.com/questions/6145118/…

标签: r


【解决方案1】:

尝试使用list.files。如果工作目录是您显示的目录的根目录,那么此链接将起作用:

my.files <- 
  list.files(path = "./", pattern = "result_file", 
             full.names = TRUE, recursive = TRUE)

这会递归搜索名称包含"result_file" 给定path 模式的文件。 pattern 可以是任何正则表达式,并且只返回与该正则表达式匹配的文件。

然后您可以使用类似的方式读取文件

ans <- lapply(my.files, read.table)

假设您的数据是表格的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多