Если i
- ваш индекс, а m
- ваша матрица, тогда строку и столбец i
можно получить с помощью
get_row <- function(i, m) (i-1) %% ncol(m) + 1
get_col <- function(i, m) ((i-1) %/% ncol(m)) + 1
Использование, например,
get_row(4, adj.m)
get_col(4, adj.m)
На самом деле, ответ Иана, возможно, более естественный. Вы можете заключить его в функцию как
get_row_col <- function(i, m)
{
x <- array(seq_along(m), dim = dim(m))
which(x == i, arr.ind = TRUE)
}
Это также работает в более чем двух измерениях, например,
m <- array(1:24, dim = 2:4)
get_row_col(1:24, m)