5

たとえば、次のようなオブジェクト(任意のオブジェクト)があるとします。

X <- array(NA,dim=c(2,2))

また、いくつかのリストがあります:

L <- list()

L[[1]]L[[2]]L[[3]]、...、L[[100]]、...、L[[1000]]すべてのオブジェクトをその中に入れたいXです。つまり、コンソールL[[i]]に と入力すると、 が返さXれます。ここで、i は {1,2,...,1000} です。

またはに頼らずにこれを効率的に行うにはどうすればよいですfor looplapply?

4

2 に答える 2

5

replicateそれがまだ一種のループ ソリューションであっても使用します。

L <- replicate(1000,X,simplify=FALSE)

2つのソリューションをベンチマークする編集:

X <- array(NA,dim=c(2,2))
library(microbenchmark)
microbenchmark( rep(list(X), 10000),
               replicate(10000,X,simplify=FALSE))

                              expr      min       lq    median        uq      max neval
                  rep(list(X), 10000) 1.743070 2.114173  3.088678  5.178768 25.62722   100
replicate(10000, X, simplify = FALSE) 5.977105 7.573593 10.557783 13.647407 80.69774   100

rep5倍高速です。replicateそれ以来、各反復で式を評価すると思います。

于 2013-07-21T10:41:23.360 に答える
5

1 のリストを作成し、それを複製します。

L <- rep(list(x), 1000)
于 2013-07-21T10:41:23.887 に答える