我正在通过使用 Lending Club 的历史贷款数据集来学习 R。这里有代表性的数据子集:https ://gist.github.com/adetch/11b1c2b6eac0b6add23f
有问题的命令:
problem <- read.csv("test.csv",na.strings=c("","<NA>"),colClasses=c("mths_since_last_major_derog"="integer"))
我遇到的错误:
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
scan() expected 'an integer', got '""'
我使用以下命令遇到了类似的问题:
problem <- read.csv("test.csv",na.strings=c("","<NA>"),colClasses=c("id"="integer"))
这种情况下的错误:
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
scan() expected 'an integer', got '"1077501"'
所以在我看来/似乎
R
的integer
类与引号不兼容- 并且可能
na.strings
转换在扫描类之后运行,并且integer
对空字符串的检查失败。
但是,其他列包裹在""
诸如member_id
和loan_amnt
被强制转换为integer
没有抱怨(并且也没有任何特殊干预使用colClasses
!)。
最接近的问题:
- 如何将这些字段 (
id
,mths_since_last_major_derog
) 转换为整数,而不是因子(注意还有许多其他字段应该转换为因子)
更重要的是:
- 我的类、类强制、read.table/read.csv 等心智模型在哪里
R
崩溃?