引导大型数据集

时间:2012-10-27 21:27:07

标签: r

我想引导一个包含多个列和行变量的大型数据集。以下是我的数据集的简化重新创建:

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作为条件分隔数据。这将创建三个列表:每个变量一个

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. 创建新的中位数群体以计算参数参数。我可以手动完成,但这很愚蠢。

1 个答案:

答案 0 :(得分:1)

我从你的问题中了解到,你可以这样做:

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

它包含了补丁3的5个样本的中位数表。