1

我在将数据从字符串转换为整数时遇到问题。

例如,原始数据如下所示

orderdt[1:10,2]

[1] 71004 13943 11337 9647  9363  6836  5957  5167  4963  4850  

但是当我像这样将它转换成双倍时,它会变成完全不同的数字

as.numeric(orderdt[1:10,2])

[1]  854  164   82 1069 1051  823  724  636  613  600

最初我将柱子(大约 1 行)铸成双列,下部的大部分都被转换了,只有前 300 个左右被这样搞砸了。您知道为什么会发生这种情况或如何解决吗?

请帮忙。

4

1 回答 1

4

几乎可以肯定你有一个因素。要检查,请使用:

is.factor(orderdt[1:10,2])

如果是一个因素,那么

as.numeric(as.character(is.factor(orderdt[1:10,2])))

应该做你所期望的。

你现在(可能)有的问题是为什么我有一个因素?如果没有更多难以了解的信息,但通常的原因是您已加载数据(例如通过 csv 文件)并且您的“数字”之一不是数字。例如,您有“1,12”而不是“1.12”

于 2013-02-20T20:27:15.270 回答