У меня есть таблицы действий различной величины. Я хотел бы проиндексировать их, используя набор значений из набора данных. Однако myTable[c(5,5,5,5)]
явно не делает то, что я хочу. Как я могу получить c(5,5,5,5)
как myTable[5,5,5,5]
?Индексирование многомерной таблицы с использованием вектора-столбца
6
A
ответ
3
Вслед на ответ @ ttmaccer: это работает из-за (слегка) неясного абзаца в ?"["
, который гласит:
When indexing arrays by ‘[’ a single argument ‘i’ can be a
matrix with as many columns as there are dimensions of ‘x’;
the result is then a vector with elements corresponding to
the sets of indices in each row of ‘i’.
Эффект использования t(ii)
в
ii <- c(5,5,5,5)
a[t(ii)]
заключается в преобразовании ii
в матрицу 1х4, что [
интерпретирует как матрицу, как описано выше; a[matrix(ii,nrow=1)]
будет более явным, но менее компактным.
Хорошей вещь об этом подходе (к тому же избегая магические кажущиеся аспекты do.call
) является то, что она работает параллельно для более чем одного набора показателей, как в
jj <- matrix(c(5,5,5,5,
6,6,6,6),byrow=TRUE,nrow=2)
a[jj]
## [1] 4445 5556
2
Если я правильно понимаю ваш вопрос, эту конструкцию, используя do.call()
, должны делать то, что вы хотите:
## Create an example array and a variable containing the desired index
a <- array(1:1e4, dim = c(10, 10, 10, 10))
ii <- c(5, 5, 5, 5)
## Use do.call to extract the desired element.
do.call("[", c(list(a), ii))
# [1] 4445
Вызов выше работает, потому что следующее эквивалентны:
a[5, 5, 5, 5]
`[`(a, 5, 5, 5, 5)
do.call("[", list(a, 5, 5, 5, 5))
do.call("[", c(list(a), ii))
Смежные вопросы
- 1. Создание таблицы или многомерной сетки с использованием JavaScript
- 2. заполнить JComboBox с элементами из многомерной таблицы
- 3. Сглаживание многомерной таблицы в PHP
- 4. Индексирование с использованием iloc
- 5. Индексирование с использованием тензора
- 6. Адрес/индексирование таблицы страниц
- 7. Индексирование таблицы с повторяющимися записями
- 8. Индексирование таблицы с отношением mm
- 9. Форма заказа php с использованием многомерной сессии
- 10. Индексирование таблицы MySQL
- 11. Индексирование искровой таблицы inmemory
- 12. Индексирование таблицы в cobol
- 13. Индексирование всех столбцов таблицы
- 14. Как создать форму для 2D/многомерной таблицы?
- 15. Индексирование огромной таблицы с Hibernate Search
- 16. Индексирование таблицы фактов SQL Server
- 17. Индексирование разделов таблицы в MySql
- 18. Создание многомерной хэш-таблицы с дженериками в VB ASP.NET?
- 19. Matlab classregtree с многомерной матрицей
- 20. Индексирование таблицы mysql для выбора
- 21. Индексирование изображений с использованием repa-devil
- 22. Индексирование матриц с использованием векторов в Matlab
- 23. индексирование строк в матрице с использованием matlab
- 24. Индексирование с использованием отсортированных наборов Redis
- 25. Индексирование текстовых файлов с использованием python 3.4.3
- 26. Apache Nutch Индексирование с использованием elasticsearch
- 27. Индексирование содержимого с использованием основного прожектора
- 28. Массовое индексирование с использованием эластичного поиска
- 29. Индексирование с использованием входной матрицы RcppArmadillo
- 30. Индексирование в Python с использованием массива индексов
Спасибо за расширение на @ ответ ttmacer в , Очень хорошо. –