从R中的不同目录读取多个txt文件

时间:2019-11-20 05:06:03

标签: r regex

我在不同目录中有几个txt文件。我想分别读取R中的每个文件,以后再对每个文件进行一些分析。

除了最后一个文件夹外,目录相同:

c:/Desktop/ATA/1/"files.txt"
c:/Desktop/ATA/2/"files.txt"
c:/Desktop/ATA/3/"files.txt"
...
...

所有目录中的文件都具有相同的名称,并且最后一个文件夹从1开始到最后一个顺序。

预先感谢

3 个答案:

答案 0 :(得分:1)

创建所有文件名以使用sprintf或类似名称读取。然后使用read.table或您用来读取文本文件的任何东西。

lapply(sprintf("c:/Desktop/ATA/%d/files.txt", 1:10), function(x) 
           read.table(x, header = TRUE))

将10替换为您拥有的文件夹数。

答案 1 :(得分:0)

也许您可以尝试:

list_file <- list.files(path = "c:/Desktop/ATA", recursive = T, pattern = ".txt", full.names = T)

这将返回文件夹中包含的文本文件列表。然后,您可以创建一个for循环来打开它们并在每个循环上应用一些功能。

for(i in 1:length(list_file))
{
   data = read.table(list_file[i],header = T, sep = "\t")
   ... function to apply
}

答案 2 :(得分:0)

首先谢谢你们,我混合了您的代码并进行了一些修改:

common_path = "c:/Desktop/ATA/"

primary_dirs = length(list.files(common_path)) # Gives no. of folders in path

list_file <- sprintf("c:/Desktop/ATA/%d/files.txt", 1:primary_dirs)
for(i in 1:length(list_file))
{
  data = read.table(list_file[i],header = T, sep = "\t")

}

因此,通过这种方式,文件夹是根据1,2,3而不是1,10,11,2,3排序的。 预先感谢,

相关问题