为什么read.csv()在将colClasses指定为"字符"时有时会出错?

时间:2015-09-30 13:08:38

标签: r data.table read.csv

我正在使用read.csv()制作data.table。导入列时,我需要将它们导入为'字符'或者'数字'。

我使用以下代码(为简洁起见而简化):

dataCols <- c(a="character", b="character", c="numeric", d="character")

data <- data.table(read.csv(file="data.csv", row-names=1, stringsAsFactors=F, colClasses=dataCols))

为了方便起见,我想让dataCols向量成为所有可能列的列表,因为我正在读取许多csv文件,这些文件代表进程各个部分的数据(我的代码是为了检查平等)。

如果我使用上面的代码来读取包含所有列a,b,c和d的csv文件,那么它就可以了。但是,如果我尝试读取只有a-c列的csv,我会收到以下错误:

Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  : 
scan() expected 'a real', got '"abc"'

其中&#34; abc&#34;是b列中第1行的内容。

我告诉它将该列作为一个角色阅读,并且它获得了一个角色,但它给了我一个错误。为什么是这样? 令人沮丧的是,前几天当我用另外的东西做这件事的时候,如果我把额外的colClasses放在里面,只是给了我一个警告说“你的csv中列出了更多的colclasses”。

我完全不知道为什么这些错误是a)不同的,并且在我上面描述的问题的情况下,甚至出现在第一位。

0 个答案:

没有答案