我有不同大小的应变表。我想使用数据集中的一组值对它们编制索引。但是, 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. 多维数组列表索引
- 2. 使用多个索引向量
- 3. 使用多维向量
- 4. 使用Prolog的多维列表中特定元素的索引
- 5. 2维python列表索引
- 6. 向量和许多索引
- 7. 向多维数组添加新索引
- 8. 多维向量?
- 9. 多维向量
- 10. 按索引排列向量
- 11. 来自多维列表的特定索引的新列表?
- 12. Python的多维列表 - IndexError:列表索引超出范围
- 13. 多维列表搜索
- 14. 多个数字的索引数字向量列表
- 15. 使用Rails/Postgresql索引多列索引
- 16. MATLAB多维索引
- 17. 使用Redis的无界多维索引
- 18. 使用索引对多维数组排序多维数组
- 19. cpp多维向量
- 20. KNN多维向量
- 21. C++多维向量
- 22. 多维向量大括号初始化程序列表到多向量
- 23. 多维数组索引和列访问
- 24. 索引多维数组以与阵列
- 25. numpy的阵列多维索引与列表IndexError:形状失配
- 26. 索引负向索引的std ::向量
- 27. 使用列表索引一个多索引的数据帧
- 28. 1维的索引或多个索引
- 29. 索引多维numpy的数组索引
- 30. 如何使用索引列表索引多个列表的词典?
感谢扩大对@ ttmacer的答案。非常好。 – 2012-07-17 21:21:47