可能重复:
R - How to convert a factor to an integer\numeric in R without a loss of information
我正在使用read.xls
导入Excel文档。我知道这个命令使用read.table
并将所有内容作为“因子”返回。我无法直接上传我的数据,告诉read.xls
哪些列是数字的,因为所有列都有以前的分类数据。所以我一直在提取我想要的数字数据列,然后想要将它们从data.frames转换为数字数据,但是当我使用as.numeric
时,我收到的数字与原始数据不对应。
例如:
这些是我的data.frame的前6行,名为dfA1,这是一个96,1向量
[,1]
[1,] "103316"
[2,] "130720"
[3,] "141808"
[4,] "131864"
[5,] "148144"
[6,] "145760"
当我执行as.numeric(dfA1)
时,我收到了:
[1] 2 18 29 19 43 40
我完全不知道为什么我会得到这些数字或者它是如何得出它们的。我检查了我的原始xls文档,它们被标记为数字,没有小数。
答案 0 :(得分:13)
您可以尝试:
as.numeric(as.character(dfA1))
您还可以通过使用stringsAsFactors = FALSE
设置?options
来防止事情自动转换为因素。
这种情况发生的原因是因素实际上是作为整数存储在内部,而标签是打印出来时实际显示的内容(例如“103316”)。函数as.numeric
认为你想要的是基础整数表示。