【发布时间】:2016-01-11 12:44:13
【问题描述】:
d
[,1] [,2] [,3] [,4] [,5]
[1,] 1 6 11 16 21
[2,] 2 7 12 17 22
[3,] 3 8 13 18 23
[4,] 4 9 14 19 24
[5,] 5 10 15 20 25
我想对每一行应用顺序,并得到这样的结果:
0 1 2 3 4
0 1 2 3 4
...
我试过这个:
l<-apply(d,1, function(x) order(x))
但我得到了这个结果:
[,1] [,2] [,3] [,4] [,5]
[1,] 1 1 1 1 1
[2,] 2 2 2 2 2
[3,] 3 3 3 3 3
[4,] 4 4 4 4 4
[5,] 5 5 5 5 5
示例 2:
> d<-matrix(sample(1:25),5,5)
> d
[,1] [,2] [,3] [,4] [,5]
[1,] 1 20 13 4 11
[2,] 22 17 24 3 16
[3,] 18 23 2 15 14
[4,] 5 25 7 10 21
[5,] 12 8 6 19 9
对不起,我在考虑排名。结果应该是这样的:
1 5 4 2 3(第 1 行)等等:
请帮忙,谢谢!!
【问题讨论】:
-
你需要
tl即t(l) -
如果你尝试 d 就不行了
-
其中的预期输出是什么。此外,请使用
set.seed以使其可重现。 -
您可以使用
rank指定ties.method -
试试
res <- t(apply(d, 1, rank)); res[1,] #[1] 1 5 4 2 3
标签: r