R で行列のリストを作成しました。リスト内のすべての行列で、特定のインデックスの行列要素のコレクションを「引き出し」たいと思います。コロン演算子を使用すると、これを 1 行で実装できるのではないかと考えていました。たとえば、リスト内のすべての行列の [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"
上記のコードの最後の行で、「次元の数が正しくありません」というエラーがスローされます。
参考までに、ここに私がやろうとしていることの実用的な(しかしエレガントではない)実装があります:
#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]
上記の操作を1行で行う方法を知っている人はいますか?
私の「行列のリスト」は別のものに置き換えることができることに注意してください。上記の操作を実行できる代替の「行列のコレクション」データ構造を誰かが提案できれば、これは解決されます。
おそらく、この質問はばかげています...しかし、私は本当にきれいな1行の実装をしたいと思っています。