我的数据看起来像,
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
谢谢,
答案 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