R доступа к матрице в массиве 3d - PullRequest
0 голосов
/ 04 мая 2020

Я хотел бы получить доступ к массиву 3d с матрицей. Вот пример желаемого вывода:

a <- array(1:18, dim=c(3,3,2))
a
, , 1

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

, , 2

     [,1] [,2] [,3]
[1,]   10   13   16
[2,]   11   14   17
[3,]   12   15   18
b <- array(1:2, dim=c(3,3))
b
     [,1] [,2] [,3]
[1,]    1    2    1
[2,]    2    1    2
[3,]    1    2    1
 a[b] 
     [,1] [,2] [,3]
[1,]    1   13    7
[2,]   11    5   17
[3,]    3   15    9

(Должен ли я передать фрейм данных с 3 столбцами (индексы + значения) вместо матрицы?)

, если я сделаю a[b] , это результат:

a[b]
 4 11  4

и почему?

c <- array(1:2, dim=c(2,2))
a[c]
[1] 1 2 1 2

1 Ответ

1 голос
/ 04 мая 2020
  • для b <- array(1:2, dim=c(3,3))
> b
     [,1] [,2] [,3]
[1,]    1    2    1
[2,]    2    1    2
[3,]    1    2    1

индексы читаются по строкам. Таким образом, как упоминалось @ jo go, a[b] на самом деле c(a[1, 2, 1], a[2, 1, 2], a[1, 2, 1])

  • для C <- array(1:2, dim=c(2,2))
> C
     [,1] [,2]
[1,]    1    1
[2,]    2    2

, поскольку размерность C не соответствует a (подходит только два из трех), в этом случае a[C] интерпретируется как a[c(C)] (благодаря комментариям от @ jo go).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...