我将一个csv导入R,它认为我的变量FERNH是一个因素;事实并非如此。我无法弄清楚为什么或如何解决它。我已经检查了FERNH中的值,它们看起来是正确的并且与其他8个变量一致。请指教。
str(height)
'data.frame': 512 obs. of 9 variables:
$ DSH : int 50 4 35 10 12 0 0 30 0 0 ...
$ ESH : int 0 0 0 0 0 30 80 10 8 15 ...
$ ETH : int 0 0 0 0 0 0 0 0 0 0 ...
$ CANEH : int 0 0 40 15 0 0 0 0 0 0 ...
$ HERBH : int 0 0 0 0 0 0 5 15 25 10 ...
$ FERNH : Factor w/ 32 levels "0","10","100",..: 1 1 1 13 1 1 26 1 14 1 ...
$ C4H : int 0 0 0 0 0 0 0 0 0 13 ...
$ GRASSH: int 40 0 0 0 0 0 0 0 0 0 ...
$ DTH : int 0 0 0 0 0 0 0 0 0 0 ...
答案 0 :(得分:5)
@贾斯汀确定了这个问题。但是,您可以levels
向colClasses='integer'
提供read.csv
,而不是尝试使用{{1}}查找违规值。然后,R会在读取期间遇到该值时引发错误并报告它是什么。
答案 1 :(得分:4)
某处有一个character
值,因此R按预期运行。查看levels(height$FERNH)
以查看违规值。您可以在阅读步骤或stringsAsFactors=FALSE
上设置options
,但该列将是character
而不是integer
。
虽然起初看起来很烦人,但如果字符列包含长字符串,那么这是一次出色的数据质量检查以及显着的内存节省。