образцы начальной загрузки по строке кадра данных в r

Я пытаюсь запустить простую загрузку строк фрейма данных в r. Вот то, что я до сих пор работал, но я захожу в тупик.

x1 <- c(1:5)
x2 <- c(6:10)
y <- runif(5)
z <- as.data.frame(rbind(x1, x2, y))

trial <- 10
avg <- rep(0, trial)
for(i in 1:trial){
  ind <- sample(ncol(z), size = ncol(z), replace = TRUE)
  z.boot <- z[ind, ]
  mean[i] <- mean(z.boot)
}
mean

В идеале я хотел бы получить средневзвешенное значение начальной загрузки для первой и второй строк с весами в третьей строке, но я даже не могу заставить свой цикл работать. Должен быть лучший способ сделать это. Любая помощь приветствуется


person mike    schedule 25.10.2016    source источник
comment
Вы выбираете из ncol(z), но затем подмножаете по строке. Вы также пытаетесь найти mean из data.frame (который не определен). Что ты пытаешься сделать?   -  person nicola    schedule 25.10.2016
comment
Я полагаю, что другим вариантом будет выборка с использованием весов как вероятностей и поиск медианы. На самом деле, я просто пытаюсь изучить эту технику применительно к строкам фрейма данных.   -  person mike    schedule 25.10.2016


Ответы (2)


попробуйте это... Я не совсем понимаю вашу точку зрения о средневзвешенном значении... но вы можете решить это отсюда:

n= seq( 100, 500, 50)    
bootdata=list()
for (i in 1:length(n)) {
   bootdata[[i]]=data[sample(nrow(data), n[i], replace=TRUE), ]
}
bootdata
str(bootdata[[1]])
person RomRom    schedule 25.10.2016

Вот как можно выполнить непараметрический бутстрап. (Похоже, это тип, который вы пытаетесь сделать, основываясь на вашем коде.) Обратите внимание, что nrow(), а не ncol(), является правильной функцией. Начальные загрузчики, которые хранятся как элементы списка «bootResult», могут быть получены через их индекс, например bootResult[[2]], и выполнить следующие шаги:

  nBoots<-10 #number of bootstraps
  bootResult<-list()
  for (i in seq_len(nBoots)){
    bootResult[[i]]<-z[sample(seq_len(nrow(z)), nrow(z), replace=TRUE), ]
  }
person InterestedInR    schedule 19.06.2019