我想引导一个包含多个列和行变量的大型数据集。以下是我的数据集的简化重新创建:
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)
这是我被困的地方:
patchId
列表以及每个列变量(上面的“sampleBoot”轻松完成)进行采样,patchId
采样列表迭代的中位数,答案 0 :(得分:1)
我从你的问题中了解到,你可以这样做:
do.call(rbind, lapply(sampleBoot(5, 3), function(x) apply(x[-1], 2, median)))
它包含了补丁3的5个样本的中位数表。