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

R中的奇怪(?)顺序,最小值从10.0开始,r,dataframe,R,Dataframe,我遇到了我觉得很奇怪的行为。我甚至不确定我应该提供哪些关于代码的细节,因为这看起来很奇怪,但问题是。我有一个数据帧,根据给定的列值进行排序 这就是数据的排序方式 ordered <- data[order(data[,column]),] 如您所见,数据是有序的,但不是从最小值到最大值,而是从10.0开始,一直到最大值,然后从最小值再次开始 我完全不知道这会是什么。有什么想法吗?什么会导致类似的行为?让你感到不安的问题是,你使用的是字符,而不是数字 要亲自检查,您可以使用以下方法: cl

我遇到了我觉得很奇怪的行为。我甚至不确定我应该提供哪些关于代码的细节,因为这看起来很奇怪,但问题是。我有一个数据帧,根据给定的列值进行排序

这就是数据的排序方式

ordered <- data[order(data[,column]),]
如您所见,数据是有序的,但不是从最小值到最大值,而是从10.0开始,一直到最大值,然后从最小值再次开始


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

让你感到不安的问题是,你使用的是字符,而不是数字

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

class(ordered[,column])

这些是字符,不是数字。字符排序依赖于区域设置
?order
告诉您查看
?Comparison
,其中包含有关字符排序的更多详细信息和参考。您可能需要返回几个步骤,并确保代码生成数值。然后顺序应该会起作用。这里的年轻玩家陷阱:
“10”在
“9”之前,但
9
10
之前。在R中查找
”作为您处理的是字符而不是数字/因子的信号。另外:搜索“词典顺序”
class(ordered[,column])