0

次のプログラム コードを使用して、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'

問題を解決する方法を教えてください。前もって感謝します!

4

1 に答える 1

0

オブジェクトは、苦労しているmydata395 x 91 として読み込まれています。関数に変更を追加すると、エラーなしで実行されました。関数をそのまま残したい場合は、すべての列をループするか、すべての列を 1 つの長い列に積み重ねます。data.framecustom.bootdata = 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 に答える