在rbind进程中识别有问题的csv文件 - 错误消息

时间:2015-06-09 14:52:42

标签: r

每隔几个月我就会收到大约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

2 个答案:

答案 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"

如果列数不等,则返回列表