【发布时间】:2012-05-18 14:37:53
【问题描述】:
我在 R 中创建了一个矩阵列表。在列表中的所有矩阵中,我想“拉出”特定索引的矩阵元素的集合。我在想冒号运算符可能允许我在一行中实现这一点。例如,这里尝试访问列表中所有矩阵的 [1,1] 元素:
myList = list() #list of matrices
myList[[1]] = matrix(1:9, nrow=3, ncol=3, byrow=TRUE) #arbitrary data
myList[[2]] = matrix(2:10, nrow=3, ncol=3, byrow=TRUE)
#I expected the following line to output myList[[1]][1,1], myList[[2]][1,1]
slice = myList[[1:2]][1,1] #prints error: "incorrect number of dimensions"
上面代码的最后一行抛出错误“incorrect number of dimensions”。
作为参考,这是我正在尝试做的工作(但不太优雅)的实现:
#assume myList has already been created (see the code snippet above)
slice = c()
for(x in 1:2) {
slice = c(slice, myList[[x]][1,1])
}
#this works. slice = [1 2]
有人知道如何在一行中完成上述操作吗?
请注意,我的“矩阵列表”可以替换为其他内容。如果有人可以建议一种替代的“矩阵集合”数据结构,允许我执行上述操作,那么这将得到解决。
也许这个问题很愚蠢...不过我真的很想有一个干净的单行实现。
【问题讨论】:
标签: r list collections matrix indexing