每隔几个月我就会收到大约200个csv文件,我将这些文件合并(rbind)到一个数据集中。我在网上找到了以下可以很好地完成工作的脚本。
setwd("directory that contains my csv files")
filenames <- list.files()
dt <- do.call("rbind", lapply(filenames, read.csv, header = TRUE))
但是,除非文件具有相同数量的列和列名称,否则该脚本将无法运行。最近,我收到的大约10%的文件列名拼写错误或列数错误。
是否有办法列出不起作用的文件,以便我可以通知发件人修复它们。
您可以假设我有以下4个文件来复制该示例。
file1.csv
A B C
1 2 3
4 5 6
file2.csv
A B C
4 5 6
3 2 1
file3.csv
A B D
7 8 9 6 6 4
file4.csv
A B C D E
7 8 9 4 5
6 5 4 2 3
我希望能够生成一个只显示
的列表 file3.csv
flle4.csv
答案 0 :(得分:0)
您可以在++quoteIndex;
quotes.eq(quoteIndex).fadeIn(2500);
之前重命名data.frames:
rbind
答案 1 :(得分:0)
试试这个:
filenames <- c("file1.csv", "file2.csv", "file3.csv")
sapply(filenames, read.csv, stringsAsFactors = FALSE, header = FALSE, nrows = 1)
给出这个:
[,1] [,2] [,3]
V1 "A" "A" "A"
V2 "B" "B" "B"
V3 "C" "C" "D"
如果列数不等,则返回列表