R:as.numeric函数没有从data.frame返回正确的#

时间:2011-08-02 19:31:12

标签: r transformation dataframe

  

可能重复:
  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文档,它们被标记为数字,没有小数。

1 个答案:

答案 0 :(得分:13)

您可以尝试:

as.numeric(as.character(dfA1))

您还可以通过使用stringsAsFactors = FALSE设置?options来防止事情自动转换为因素。

这种情况发生的原因是因素实际上是作为整数存储在内部,而标签是打印出来时实际显示的内容(例如“103316”)。函数as.numeric认为你想要的是基础整数表示。