我在不同目录中有几个txt文件。我想分别读取R中的每个文件,以后再对每个文件进行一些分析。
除了最后一个文件夹外,目录相同:
c:/Desktop/ATA/1/"files.txt"
c:/Desktop/ATA/2/"files.txt"
c:/Desktop/ATA/3/"files.txt"
...
...
所有目录中的文件都具有相同的名称,并且最后一个文件夹从1开始到最后一个顺序。
预先感谢
答案 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排序的。 预先感谢,