【发布时间】:2011-08-29 03:56:41
【问题描述】:
我的数据看起来像,
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
谢谢,
【问题讨论】:
我的数据看起来像,
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
谢谢,
【问题讨论】:
你尝试了什么?这真的很简单,很容易通过一个简单的循环来解决。
> 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
【讨论】:
t(apply(DF, 1, sort))
t() 函数是必需的,因为使用 apply 系列函数的行操作会以列优先顺序返回结果。
【讨论】:
apply() 正在一次构建一个矩阵,对吗?
还没有plyr 的答案?!
foo <- matrix(sample(LETTERS,10^2,T),10,10)
library("plyr")
aaply(foo,1,sort)
除了不需要t()之外,与 DWins 的答案完全相同
【讨论】:
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
【讨论】: