按字母顺序排序行

时间:2011-05-19 19:29:06

标签: r sorting apply

我的数据看起来像,

A    B    C    D
B    C    A    D
X    Y    M    Z
O    M    L    P

如何对行进行排序以获得类似

的内容
A    B    C    D
A    B    C    D
M    X    Y    Z
L    M    O    P

谢谢,

4 个答案:

答案 0 :(得分:22)

t(apply(DF, 1, sort))

t()函数是必需的,因为使用apply函数族的行操作会按列主要顺序返回结果。

答案 1 :(得分:6)

你尝试了什么?这非常简单,只需简单的循环就可以解决。

> s <- x
> for(i in 1:NROW(x)) {
+   s[i,] <- sort(s[i,])
+ }
> s
  V1 V2 V3 V4
1  A  B  C  D
2  A  B  C  D
3  M  X  Y  Z
4  L  M  O  P

答案 2 :(得分:2)

没有plyr回答?!

foo <- matrix(sample(LETTERS,10^2,T),10,10)

library("plyr")

aaply(foo,1,sort)

与DWins的答案完全相同,只是您不需要t()

答案 3 :(得分:0)

Martin Morgan在Fastest way to select i-th highest value from row and assign to new column中的另一个快速基准R选项是

matrix(a[order(row(a), a, method="radix")], ncol=ncol(a))

可以找到时间here