R 中的奇怪(?)排序,最小值从 10.0 开始

Strange(?) ordering in R, min value starts from 10.0

我 运行 在我看来是非常 st运行ge 的行为。我什至不确定我应该提供哪些代码细节,因为这看起来很奇怪,但这就是问题所在。我有一个数据框,我根据给定的列值

进行排序

这是数据的排序方式

ordered <- data[order(data[,column]),]

变量列作为参数传递。这一切看起来都很简单,但我下面的输出显示为 st运行ge 排序。

ordered[,column]

 [1] "10.0" "10.0" "10.0" "10.0" "10.1" "10.1" "10.1" "10.1"
 ...
[257] "8.9"  "8.9"  "9.0"  "9.0"  "9.0"  "9.1"  "9.2"  "9.2" 
[265] "9.2"  "9.2"  "9.3"  "9.3"  "9.3"  "9.4"  "9.5"  "9.6" 
 ...

如您所见,数据是有序的,但不是从最小值到最大值,而是从 10.0 开始,直到最大值,然后再次从最小值开始。

我完全不知道这是什么。有任何想法吗?什么会导致类似的行为?

让您失望的问题是您使用的是字符,而不是数字。

要自行检查,您可以使用以下方法:

class(ordered[,column])