【发布时间】:2015-09-21 12:34:59
【问题描述】:
我有两个文件夹,其中的文件名称相同。例如 - FOLDER1 有 a.csv、b.csv、c.csv,同样 FOLDER2 有 a.csv、b.csv、c.csv
文件的行数不同,但列数和名称相同
我想把同名的文件合并起来,写成a.csv,b.csv c.csv这个名字的文件。
这只是一个示例,我想对 800-1000 个文件进行此操作。
我试过了
filenames <- list.files(c(filePathNew,filePath), pattern="*.csv", full.names=TRUE)
拥有两个文件夹中的所有文件名
lst1 <- lapply(split(filenames, basename(filenames)),function(x) do.call(rbind,
lapply(x,function(y) read.csv(y, header = TRUE, stringsAsFactors = FALSE, sep = ""))))
lapply(seq_along(lst1), function(i) write.csv(lst1[[i]], paste(filepath,names(lst1)[i], sep = "/"), row.names = FALSE,
quote = FALSE))
但它显示以下错误
Error in rbind(deparse.level, ...) :
numbers of columns of arguments do not match
Called from: stop("numbers of columns of arguments do not match")
【问题讨论】:
-
您自己已经尝试过什么?为什么它不起作用?
-
请看已编辑的问题
-
从错误消息中,似乎至少有一个文件对的列数不匹配。尝试添加
print语句以在do.call之前打印出文件对,以查看失败的位置。