更新
感谢您的建议。这是我到目前为止的方式,但我仍然没有找到如何让循环在文件路径名中工作。
setwd("//tsclient/C/Users/xxx")
folders <- list.files("TEST")
- &GT;这给了我一个文件夹名称列表
for(f in folders){
setwd("//tsclient/C/xxx/[f]")
files[f] <- list.files("//tsclient/C/Users/xxx/TEST/[f]", pattern="*.TXT")
mergedfile[f] <- do.call(rbind, lapply(files[f], read.table))
write.table(mergedfile[f], "//tsclient/C/Users/xxx/[f].txt", sep="\t")
}
我有大约100个文件夹,每个文件夹包含多个txt文件。我想为每个文件夹创建1个合并文件并将其保存在其他位置。但是,我不想在我的代码中为每个文件夹手动调整文件夹名称。
我创建了以下代码来加载来自单个文件夹(可以工作)的所有文件并合并这些文件。
setwd("//tsclient/C/xxx")
files <- list.files("//tsclient/C/Users/foldername", pattern="*.TXT")
file.list <- lapply(files, read.table)
setattr(file.list, "names", files)
masterfilesales <- rbindlist(file.list, idcol="id")[, id := substr(id,1,4)]
write.table(masterfilesales, "//tsclient/C/Users/xxx/datasets/foldername.txt", sep="\t")
如果我想手动执行此操作,我每次都必须调整“foldername”。 foldernames包含数值,包含2500到5000之间的100个数字(总是4位数)。
我查看了重复循环,但是那些不在文件路径中使用它。 如果有人能指引我朝着一个好的方向发展,我将非常感激。