Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将多个目录中的多个文件读入R进行处理?_R_Batch File - Fatal编程技术网

如何将多个目录中的多个文件读入R进行处理?

如何将多个目录中的多个文件读入R进行处理?,r,batch-file,R,Batch File,我正在进行模拟研究,需要处理和保存几个文本文件的结果。我以这样的方式组织数据,其中有子目录,在每个子目录中,我需要处理并获得1000个数据文件的单独结果。在SAS中使用宏很容易做到这一点。然而,我对R还不熟悉,不知道该怎么做。下面是我正在努力实现的目标 DATA Folder-> DC1 -> DC1R1.txt ... DC1R1000.txt DC2 -> DC2R1.txt ... DC2R1000.txt 任何帮助都将不胜感激 我现在不在配

我正在进行模拟研究,需要处理和保存几个文本文件的结果。我以这样的方式组织数据,其中有子目录,在每个子目录中,我需要处理并获得1000个数据文件的单独结果。在SAS中使用宏很容易做到这一点。然而,我对R还不熟悉,不知道该怎么做。下面是我正在努力实现的目标

DATA Folder-> DC1 -> DC1R1.txt ... DC1R1000.txt
              DC2 -> DC2R1.txt ... DC2R1000.txt

任何帮助都将不胜感激

我现在不在配备R的计算机附近,但请阅读有关文件相关功能的帮助:

dir
功能将列出文件和目录。它有一个递归参数。
list.files
dir
的别名。
file.info
函数将告诉您(除其他外)路径是否为目录,并且
file.path
将组合路径部分

basename
dirname
函数也可能有用

请注意,所有这些函数都是矢量化的

现在在计算机上编辑,下面是一个示例:

# Make a function to process each file
processFile <- function(f) {
  df <- read.csv(f)
  # ...and do stuff...
  file.info(f)$size # dummy result
}

# Find all .csv files
files <- dir("/foo/bar/", recursive=TRUE, full.names=TRUE, pattern="\\.csv$")

# Apply the function to all files.
result <- sapply(files, processFile)
#创建一个函数来处理每个文件

processFile您可以使用Perl的
glob()
函数获取文件列表,并使用例如的接口将其发送到R

如果需要对每个文件运行相同的分析,则可以使用
list.files(recursive=T)
一次性访问它们。这是假设您已经将工作目录设置为
数据文件夹
recursive=T
也列出子目录中的所有文件。

文件名请尝试
list.files
。谢谢大家的回复@Tommy…到目前为止,您的编码工作正常…祈祷吧…我有768个数据条件,每个条件下有1000个模拟文件。这需要一段时间来处理,所以我会在完成后给出一个状态。谢谢Ramnath。我从未列出过。文件,但会尝试一下。汤米的编码到目前为止还在工作。嗨,塔玛。我不熟悉Perl。我是一名统计学家,从来没有必要使用这种方法。虽然……我听说它很强大。