Загрузите большой набор данных

Я хотел бы загрузить большой набор данных, который содержит несколько переменных столбца и строки. Ниже приведено упрощенное воссоздание моего набора данных:

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 итерация списка выборок, иСоздайте новую совокупность медиан для расчета параметрических параметров. Я могу сделать это вручную, но это было бы глупо.
 Ali28 окт. 2012 г., 00:00
Я не знаю, почему вы не определили данные <-1: 72?
 Ken Williams28 окт. 2012 г., 05:05
Ваш шаг разделения можно записать прощеpatchSpectrum <- by(charDataDiff, charDataDiff$varNames, data.frame).
 Ragy Isaac28 окт. 2012 г., 01:32
Спасибо вы правы
 Ali28 окт. 2012 г., 02:11
Таким образом, вы можете редактировать свою очередь

Ответы на вопрос(1)

Решение Вопроса

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

Он составляет таблицу медиан 5 образцов 3-го участка.

 Ragy Isaac16 мар. 2013 г., 16:52
Спасибо Али, это очень полезно
 Ragy Isaac28 окт. 2012 г., 14:31
Спасибо, я перепишу вопрос с большей ясностью. Ваш ответ помог мне переопределить проблему.
 Ali28 окт. 2012 г., 16:51
@RagyIsaac Так что команда выше не то, что вы хотели? Это создает таблицу медианы населения, я думаю,

Ваш ответ на вопрос