минимальный пример данных:
m <- matrix(list(c(1,3), c(2,1), c(2,2), c(1,2)), ncol=2)
[, 1] [, 2]
[1, ] c(1, 3) c(2, 2)
[2, ] c(2, 1) c(1, 2)
Решение 1 с использованием apply
(возвращает «3d-матрицу»):
apply(apply(m, c(1,2), function(x) rank(x[[1]]))
Решение 2 с использованием l oop (возвращает «2d матрицу» списков):
result <- m # copy original matrix as template to recieve rankings
for (i in seq_along(m[, 1])) {
for (j in seq_along(m[1, ])) {
result[i, j][[1]] <- rank(m[i, j][[1]])
}
}