100個の要素のリストがあります。各要素はリストです。このリストには 2 つの要素があります。1 つは単なるキーであり、もう 1 つはマトリックスです。この行列には 5 つの列があります。すべての要素について、これらの各マトリックスから 1 つの列を抽出しようとしています。したがって、基本的には、リストの要素として 100 個の行列を再び持つことになります。リストはこんな感じ
a[[1]]
[[1]]
[1] "keyid"
[[2]]
[,1] [,2] [,3] [,4] [,5]
[1,] "1329397986.572332" "x" "y" "z" "a"
[2,] "1329242747.368294" "x" "y" "z" "a"
[3,] "1329194224.351232 "x" "y" "z" "a"
ここに表示されているのはリストで、100 個の要素があります。各要素は 2 つの要素のリストです。私は現在、2番目の要素にのみ興味があります。2 番目の要素には行列があります。この行列の最初の列を抽出したいと思います。列をベクトルに抽出できるかどうかを確認するために
a[[1]][[2]][,1]
次のように、すべての値をベクトルとして取得します。
a[[1]][[2]][,1]
[1] "1329397986.572332" "1329242747.368294" "1329194224.351232"
しかし、私がするとき
x <- lapply(a,function(r){r[[2]][,1]})
以下は私が得るエラーです。
> x <- lapply(a, function(r){r[[2]][,1]})
Error in r[[2]][, 1] : incorrect number of dimensions
なぜそれを取得しているのかわかりません。行列要素の次元を確認しました。
> dim(a[[1]][[2]])
[1] 52 5
そしてそれは正しいように見えます。そのため、エラーがどこにあるのかわかりません。
dput(a) が与える
dput(a)
[[1]]
[[1]][[1]]
[1] "keyid"
[[1]][[2]]
[,1] [,2] [,3] [,4] [,5]
[1,] "1329397986.572332" "x" "y" "z" "a"
[2,] "1329242747.368294" "x" "y" "z" "a"
[3,] "1329194224.351232" "x" "y" "z" "a"
[[2]]
[[2]][[1]]
[1] "keyid"
[[2]][[2]]
[,1] [,2] [,3] [,4] [,5]
[1,] "1329397986.572332" "x" "y" "z" "a"
[2,] "1329242747.368294" "x" "y" "z" "a"
[3,] "1329194224.351232" "x" "y" "z" "a"
...
[[100]]
[[100]][[1]]
[1] "keyid"
[[100]][[2]]
[,1] [,2] [,3] [,4] [,5]
[1,] "1329397986.572332" "x" "y" "z" "a"
[2,] "1329242747.368294" "x" "y" "z" "a"
[3,] "1329194224.351232" "x" "y" "z" "a"