Есть ли способ изящно указать срез в многомерном массиве в R, из-за чего количество измерений неизвестно заранее?r массив-срез программно определенного размера
Например, для 5-мерного массива, нарезка из последнего измерения может быть сделано с помощью
fourdimslice <- fivedimarray[,,,,1]
но I'l нравится кодировать это для произвольных размеров, что-то вроде
slice <- arbitrarydimarray(dim=5, index=1)
Я не мог понять, будет ли подход do.call('[', ...)
. Я также пробовал именованные измерения, но a[fifth=1]
не интерпретируется так, как хотелось бы здесь.
Я полагаю, что функции, подобные apply()
, необходимо выполнять аналогичные вещи.
Смотрите, если http://stackoverflow.com/questions/14500707/select-along-one -of-n-dimensions-in-array/14501461 # 14501461 отвечает на ваш вопрос. – flodel
Я на самом деле написал код однажды (когда был молод и глуп :-)), который посмотрел на количество измерений массива и построил строку, зациклив на что-то вроде 'foo <- 'x ['; для (i в 1: (n-1)) foo <- paste (foo, ',') '. Ответ В. Зоункинда очень приятный. –