对不起,如果这是一个微不足道的问题。
我希望对具有正值和负值的数据集进行排序,使其忽略其符号。即它sort
与abs
函数类似,但保留输出中的符号或在其他列中显示符号。例如
1 -2 5 -8 -9 6
排序到
1 -2 5 6 -8 -9
或
1 2 5 6 8 9
+ - + + - -
我尝试了一些语法,但仍然无法获得紧凑的结果。 R中是否有内置函数? 谢谢!
答案 0 :(得分:2)
您可以使用abs
和order
> 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))]