R: передать индекс 3D-массива с помощью переменной - PullRequest
0 голосов
/ 17 июня 2020

У меня есть 3D-массив:

a <- array(rnorm(50*60*23), dim = c(50, 60, 23))

Я хочу установить переменную, которая будет извлекать средний кубоид. В частности, я хочу использовать переменную (объект) R для вызова следующего кубоида:

a[5:41,6:51,11:19]

Итак, я хочу установить объект R zz, который содержит эти индексы, чтобы я мог использовать

a[zz], чтобы называть этот средний кубоид.

Как мне это сделать? TIA.

1 Ответ

0 голосов
/ 19 июня 2020

Ответ, очень любезно предоставленный @Roland, таков:

a <- array(rnorm(50*60*23), dim = c(50, 60, 23))
zz <- list(5:41,6:51,11:19)
do.call("[", c(list(a), zz))

@ Nutle также очень полезно предоставляет следующее:

a <- array(rnorm(50*60*23), dim = c(50, 60, 23))
zz <- list(5:41,6:51,11:19)
do.call(function(...)magrittr::extract(a,...),zz)

, что по сути совпадает с во-первых, поскольку magrittr::extract() - это просто псевдоним "[".

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