【发布时间】:2019-10-05 22:11:23
【问题描述】:
是否有用于对列变量进行排序的 R 函数?我有如下列的列表
Col1 11 110 1100 12
a 1 2 20 22
b 16 5 3 18
默认情况下,R 对 11、110、1100 等进行排序。
但我需要,
Col1 11 12 110 1100
a 1 22 2 20
b 16 18 5 3
有没有办法做到这一点?
【问题讨论】:
-
你试过
sort或order吗? -
您不应该将整数作为列名,因为它们不是真正的整数,而是字符。因此,通常的排序会产生不希望的结果,并且使用此列名进行数据操作也会使其变得困难和混乱。
-
我试过了,但还是一样
-
要添加到@DavidArenburg 的评论中,R 几乎总是会在数字列名称中添加一个 X。麻烦的是,即使您删除了这个 X,
col1的存在也使得这些名称很难排序。dplyrsselect与everything结合使用可能会更容易。 -
你不了解我。列名永远不是整数,即使它们是这样打印的。因此,它们将按字符进行排序,因此“110”将排在“12”之前,因此您的排序没有多大意义。您可以使用一些辅助函数来实现这一点,例如
df[c("Col1", gtools::mixedsort(names(df)[-1]))]。但是,使用这样的列名仍然不是一个好习惯。
标签: r