R使用bootstrap计算标准错误,is.data.frame(x)中的错误:

时间:2014-01-01 21:31:01

标签: r estimation standard-error statistics-bootstrap

我使用下一个程序代码使用bootstrap for Libras Data movement set估算标准错误:

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 个答案:

答案 0 :(得分:0)

mydata对象正在以data.frame正在努力的395 x 91 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)))
}