我的数据看起来像这样:
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
No plyr
answer yet?!
foo <- matrix(sample(LETTERS,10^2,T),10,10)
library("plyr")
aaply(foo,1,sort)
t()
之外,与 DWins 的答案完全相同。来自Martin Morgan的另一个快速基本R选项(从行中选择第i个最高值并分配到新列的最快方法)是
matrix(a[order(row(a), a, method="radix")], ncol=ncol(a))
时间表可以在这里找到
apply()
是逐列构建矩阵,对吗? - IRTFM