0

我使用下一个程序代码来估计使用Libras 数据移动集的引导程序的标准误差:

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'

您能帮我找出问题所在并给出如何解决的建议吗?提前致谢!

4

1 回答 1

0

mydata对象正在以 395 x 91 的分辨率被读入,data.framecustom.boot正在努力处理。当我添加更改到data = mydata[, 1]该函数时,该函数运行时没有出现错误。如果你想保持你的函数不变,我要么循环遍历每一列,要么将所有列堆叠成一个长列。

编辑:

如果您想遍历 this 的所有列data.frame,我会编写一个类似于您所拥有的循环,但按每一列切片:

for(i in 1:ncol(mydata)){
  custom.boot(times=1000, data=mydata[, i])
  print(mean(custom.boot(times=1000)))
}
于 2014-01-01T21:47:45.720 回答