我使用下一个程序代码使用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'
你能帮我解决问题并提出建议吗?如何解决?提前谢谢!
答案 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)))
}