Подтвердить что ты не робот

Как обратить матрицу в R?

У меня есть простая матрица вроде:

> a = matrix(c(c(1:10),c(10:1)), ncol=2)
> a
      [,1] [,2]
 [1,]    1   10
 [2,]    2    9
 [3,]    3    8
 [4,]    4    7
 [5,]    5    6
 [6,]    6    5
 [7,]    7    4
 [8,]    8    3
 [9,]    9    2
[10,]   10    1

Я хотел бы получить этот результат:

      [,1] [,2]
 [1,]   10    1
 [2,]    9    2
 [3,]    8    3
 [4,]    7    4
 [5,]    6    5
 [6,]    5    6
 [7,]    4    7
 [8,]    3    8
 [9,]    2    9
[10,]    1    10

Точная обратная матрица. Как я могу его получить? Благодаря

4b9b3361

Ответ 1

Попробуйте rev с помощью apply:

> a <- matrix(c(1:10,10:1), ncol=2)
> a
      [,1] [,2]
 [1,]    1   10
 [2,]    2    9
 [3,]    3    8
 [4,]    4    7
 [5,]    5    6
 [6,]    6    5
 [7,]    7    4
 [8,]    8    3
 [9,]    9    2
[10,]   10    1
> b <- apply(a, 2, rev)
> b
      [,1] [,2]
 [1,]   10    1
 [2,]    9    2
 [3,]    8    3
 [4,]    7    4
 [5,]    6    5
 [6,]    5    6
 [7,]    4    7
 [8,]    3    8
 [9,]    2    9
[10,]    1   10

Ответ 2

a[nrow(a):1,]
#       [,1] [,2]
#  [1,]   10    1
#  [2,]    9    2
#  [3,]    8    3
#  [4,]    7    4
#  [5,]    6    5
#  [6,]    5    6
#  [7,]    4    7
#  [8,]    3    8
#  [9,]    2    9
# [10,]    1   10

Ответ 3

Здесь один из способов:

a[, rev(seq_len(ncol(a)))]
      [,1] [,2]
 [1,]   10    1
 [2,]    9    2
 [3,]    8    3
 [4,]    7    4
 [5,]    6    5
 [6,]    5    6
 [7,]    4    7
 [8,]    3    8
 [9,]    2    9
[10,]    1   10