0

R でデータをランダムにサブセット化し (生態学的研究に適した生息地の割合)、値が 0 を超えるサンプルの平均と割合を計算し、それらの値をデータフレームに保存または追加する方法を見つけようとしています。次に、これを何度も繰り返します(例では1000回)。サブサンプルの平均と同様に発生頻度を計算する必要があるため、標準のブートストラップまたはリサンプリング パッケージは機能しません。私は「適用」機能を認識していますが、それらはデータフレーム全体をループしますが、サブサンプルで繰り返し実行しようとしています。ループ内で計算された値を取得して保存および出力するためのコードが必要であることはわかっていますが、問題があります。「habprop」は、正の値の平均と割合を計算して保存したいデータフレーム(「データ」)の列です。

for(i in 1000 {  
randsample=data[sample(1:nrow(data), 50, replace=FALSE),]
m=mean(randsample$habprop)
randsamplepos=subset(randsample, habprop > 0)
habfreq=(nrow(randsamplepos)/nrow(randsample))
})
4

2 に答える 2

0

これを使用bootできるはずです

dat <- data.frame(habprop=rnorm(100))

## Function to return statistics from subsamples
stat <- function(dat, inds)
    with(dat, c(mu=mean(habprop[inds]), freq=sum(habprop[inds] > 0)/length(inds)))

library(boot)
boot(data=dat, statistic=stat, R=1000)

# Bootstrap Statistics :
#        original      bias    std. error
# t1* -0.06154533 -0.00324393  0.08377116
# t2*  0.52000000 -0.00073000  0.04853991
于 2015-06-15T18:30:06.687 に答える