在R中对列进行排序,忽略数字符号

时间:2014-06-19 18:34:49

标签: r sorting

对不起,如果这是一个微不足道的问题。 我希望对具有正值和负值的数据集进行排序,使其忽略其符号。即它sortabs函数类似,但保留输出中的符号或在其他列中显示符号。例如

1  -2  5  -8  -9  6

排序到

1 -2  5  6  -8 -9

1 2 5 6 8 9 
+ - + + - -

我尝试了一些语法,但仍然无法获得紧凑的结果。 R中是否有内置函数? 谢谢!

3 个答案:

答案 0 :(得分:2)

您可以使用absorder

> x[order(abs(x))]
[1]  1 -2  5  6 -8 -9

答案 1 :(得分:2)

这样的事可能会有所帮助

> output <- data.frame(x, sign=sign(x))
> output[order(abs(x)), ]
   x sign
1  1    1
2 -2   -1
3  5    1
6  6    1
4 -8   -1
5 -9   -1

答案 2 :(得分:1)

使用订单编制索引:

x = x[order(abs(x))]