我的数据看起来像,
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
谢谢,
t(apply(DF, 1, sort))
该t()
函数是必要的,因为具有函数族的行操作以apply
列优先顺序返回结果。
你尝试了什么?这真的很简单,很容易通过一个简单的循环来解决。
> 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
还没plyr
回答?!
foo <- matrix(sample(LETTERS,10^2,T),10,10)
library("plyr")
aaply(foo,1,sort)
与 DWins 的答案完全相同,只是您不需要t()
Martin Morgan 的另一个快速基础 R 选项以最快的方式从行中选择第 i 个最高值并分配给新列是
matrix(a[order(row(a), a, method="radix")], ncol=ncol(a))
时间可以在这里找到