R вычислить стандартную ошибку с помощью начальной загрузки, Ошибка в is.data.frame(x):

Я использовал следующий программный код, чтобы оценить стандартную ошибку с помощью начальной загрузки для набора движения Libras Data:

mydata<-read.table('C:/Users/Desktop/libra.txt', sep=',', header=TRUE)
head(data)
custom.boot <- function(times, data=mydata) {
  boots <- rep(NA, times)
  for (i in 1:times) {
    boots[i] <- sd(sample(data, length(data), replace=TRUE))/sqrt(length(data))  
  }
  boots
}
# Mean standard error
mean(custom.boot(times=1000))

Но я получил следующую ошибку:

Error in is.data.frame(x) : 
  (list) object cannot be coerced to type 'double'

Не могли бы вы помочь мне разобраться в проблеме и дать совет, как ее можно решить? Заранее спасибо!

1 ответ

mydata объект читается как 395 х 91 data.frame который custom.boot борется с. Когда я добавил изменился на data = mydata[, 1] функция работала без ошибок. Если вы хотите оставить свою функцию как есть, я бы либо перебрал каждый столбец, либо сложил все столбцы в один длинный столбец.

РЕДАКТИРОВАТЬ:

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

for(i in 1:ncol(mydata)){
  custom.boot(times=1000, data=mydata[, i])
  print(mean(custom.boot(times=1000)))
}
Другие вопросы по тегам