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

Ama*_*nda 7 r transformation dataframe

可能重复:
R - 如何在R中将因子转换为整数\numeric而不丢失信息

我正在使用导入excel文档read.xls.我知道这个命令使用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"
Run Code Online (Sandbox Code Playgroud)

当我表演时,as.numeric(dfA1)我收到:

[1]  2  18  29  19  43  40
Run Code Online (Sandbox Code Playgroud)

我完全不知道为什么我会得到这些数字或者它是如何得出它们的.我检查了我的原始xls文档,它们被标记为数字,没有小数.

jor*_*ran 14

你可以试试:

as.numeric(as.character(dfA1))
Run Code Online (Sandbox Code Playgroud)

并且您还可以通过设置stringsAsFactors = FALSE使用来防止事物自动转换为因子?options.

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