R - 基本函数 - 通过观察矩阵中向量的等级

R - basic function - Rank of a vector within a matrix, by observation

我想对矩阵中的列向量进行排序。

我有以下矩阵"data"

> data <- matrix (c(12,43,15,17,15,23,4,50,43,6,91,8), nrow = 4, ncol = 3)

名字和日期应该是这样的

Date  Obs     y1   y2   y3
2014   1      12   15   43 
2014   2      43   23   6
2013   1      15   4    91
2013   2      17   50   8

输出应该是一个变量相对于其他变量的排名,对于每个独特的观察 (date*Obs)

Date  Obs        formula(y1)  formula(y2)  formula(y3)
2014   1         3            2            1
2014   2         1            2            3
2013   1         2            3            1
2013   2         2            1            3

编辑:感谢@Tim Hoolihan 和 user20650,一个简单的矩阵是: t(apply(data, 1, function(x) rank(-x)))

感谢您的帮助 - 来自一个迷路的菜鸟。

使用 apply 遍历行并对它们进行排名:

> data <- matrix (c(12,43,15,17,15,23,4,50,43,6,91,8), nrow = 4, ncol = 3)
> t(apply(data, 1, function(x) rank(-x)))
     [,1] [,2] [,3]
[1,]    3    2    1
[2,]    1    2    3
[3,]    2    3    1
[4,]    2    1    3