0

複数の列変数と行変数を含む大規模なデータ セットをブートストラップしたいと考えています。以下は、私のデータセットを簡単に再作成したものです。

charDataDiff <- data.frame(c('A','B','C'), matrix(1:72, nrow=9))
colnames(charDataDiff) <- c("patchId","s380","s390","s400","s410","s420","s430","s440","s450")

patchIdを基準としてデータを分離します。これにより、変数ごとに 1 つずつ、合計 3 つのリストが作成されます。

idColor <-  c("A", "B", "C")
(patchSpectrum <- lapply(idColor, function(idColor) charDataDiff[charDataDiff$patchId==idColor,]))

sampleBootをサンプリングする関数を作成しましたpatchSpectrum

sampleBoot <-  function(nbootstrap=2, patch=3){
    return(lapply(1:nbootstrap, function(i)
             {patchSpectrum[[patch]][sample(1:nrow(patchSpectrum[[patch]]),replace=TRUE),]}))}

例:

sampleBoot(5,3)

これが私が立ち往生している場所です:

  1. 各リストと各列変数をサンプリングする必要がありpatchIdます (上記の「sampleBoot」で簡単に実行できます)。
  2. patchIdサンプリング リスト反復の中央値を取得し、
  3. パラメトリック パラメーターを計算するために中央値の新しい母集団を作成します。手動で行うことはできますが、それはばかげています。
4

1 に答える 1

1

あなたの質問から私が理解している限り、次のようにすることができます:

do.call(rbind, lapply(sampleBoot(5, 3), function(x) apply(x[-1], 2, median)))

パッチ 3 の 5 つのサンプリングの中央値の表を作成します。

于 2012-10-28T01:24:30.290 に答える