最初の列(experiment.id)で構成されるデータフレームがあり、残りの列はこの実験IDに関連付けられた値です。各行は一意の実験IDです。私のデータフレームには、10⁴-10⁵のオーダーの列があります。
data.frame(experiment.id=1:100, v1=rnorm(100,1,2),v2=rnorm(100,-1,2) )
このデータフレームは、私のサンプルスペースのソースです。私がやりたいのは、一意のexperiment.id(行)ごとに、このIDに関連付けられた値v1、v2、....、v10000の1つをランダムにサンプリングして(置換して)、サンプルs1を作成することです。各サンプルs1には、すべての実験IDが表示されます。
最終的には、10⁴のサンプル、s1、s2、....、s10⁴を実行して、統計を計算したいと思います。
このサンプリングプロセスを実行するための(計算上)最も効率的な方法は何でしょうか。forループはできるだけ避けたいと思います。
更新: サンプリングだけでなく、サンプルの保存についての私の質問。私の本当の質問は、上記以外のより速い方法があるかどうかだと思います
d<-data.frame(experiment.id=1:1000, replicate (10000,rnorm(1000,100,2)) )
results<-data.frame(d$experiment.id,replicate(n=10000,apply(d[,2:10001],1,function(x){sample(x,size=1,replace=T)})))