各リスト要素自体が複数の名前オブジェクトを持つ別のリストを保持するリストがあります。これらの名前付きオブジェクトはそれぞれ、同じ長さのベクトルです。私の目標は、ベクトルを連結することによって、関連するオブジェクト (同じ名前のオブジェクト) をマトリックスに効率的に結合することです。
これは、私が取り組んでいる構造のタイプの例です。ただし、現在のアプリケーションでは、並列化されたマルチレベル モデルであるため、mclapply から来ており、リストのリストを取得する方法はないと思います。
> test=lapply(1:2,function(x){out = list(); out$t=rnorm(3)+x; out$p =rnorm(3)+ x+.1; return(out)})
> test
[[1]]
[[1]]$t
[1] 0.5950165 0.8827352 0.5614947
[[1]]$p
[1] 2.6144102 1.9688743 0.6241944
[[2]]
[[2]]$t
[1] 2.562030 1.832571 3.018756
[[2]]$p
[1] 1.7431969 0.5305784 2.6935106
これが私が望むものを達成するための大雑把な方法です
> t.matrix = cbind(test[[1]]$t,test[[2]]$t)
> t.matrix
[,1] [,2]
[1,] 2.2094525 2.634907
[2,] -0.2822453 2.440666
[3,] 1.1704518 2.483424
しかし、代わりに、非常に長いリスト (約 100 万の要素) に対してこれを実行できるようにしたいと考えており、現在のソリューションはスケーリングしません。
for ループを使用できると思いますが、reduce または unlist または sapply などを巧みに使用してそれを行うより良い方法があるに違いないようです。