我正在进行模拟研究,需要处理并保存几个文本文件的结果.我以这样的方式组织数据,其中有子目录,并且在每个子目录中,我需要处理并获得1000个数据文件的单独结果.使用宏在SAS中很容易做到这一点.但是,我是R的新手,无法弄清楚如何做到这一点.以下是我想要完成的事情.
DATA Folder-> DC1 -> DC1R1.txt ... DC1R1000.txt
DC2 -> DC2R1.txt ... DC2R1000.txt
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!
我现在不在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)
Run Code Online (Sandbox Code Playgroud)
如果您需要对每个文件进行相同的分析,则可以使用进行一次查看list.files(recursive = T)。假设您已经将工作目录设置为Data Folder。同时recursive = T列出子目录中的所有文件。