9

我现在摆弄了一段时间,但找不到合理的解决方案。

我想按降序对data.frame的所有列进行排序。

示例数据例如:

CustomData <- data.frame(Value1=rnorm(100,1,2), Value2=rnorm(100,2,3),
                         Value3=rexp(100,5), Value4=rexp(100,2))

适用于一列:

CustomData[order(CustomData$Value1, decreasing=FALSE), ]

如何以合理的方式按降序/升序对所有列数据进行排序?谢谢。

我也尝试过其他地方发布的类似内容,但没有按说​​明工作。

CustomData[do.call(order, as.list(CustomData)),] 
4

2 回答 2

16
CD.sorted <- apply(CustomData, 2, sort, decreasing=F)
#2 == column, 1 == row 
于 2013-08-20T17:28:27.917 回答
4

使用 do.call 要快得多。

对于升序。

CustomData[do.call(order, CustomData),]

对于降序,语法稍微复杂一些,因为我们必须传递“递减”参数。

CustomData[do.call(order, c(CustomData, list(decreasing=TRUE))),]
于 2019-06-26T16:19:24.157 回答