boot
ライブラリに関数を実装する際に問題があります。私が実装したいR - ペアになった(誤って)一致するブートストラップ機能を実装する
機能は、2つの配列間の一致の数だ次
fsyn = function(x) sum(x[1,] == x [2,])
です。
私のデータは、このような
id V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
1 1 c a c b c c b d d a
2 1 c d a a c b d a b a
3 2 b d c b b b c d a b
4 2 b a b c b c d b a d
として配列のセットであるこれらの配列についての重要な何かが、彼らはid
でををペアになっているという事実です。
私は2つのことをすることに興味があります。まず、一致の数をid
でブートストラップし、2つ目のランダムな個体を2つ目にブートストラップします。
最初の手順は
df %>% funcHamC
第二機能を
library(dplyr)
chid = df$id
# sampling paired sequences #
wchid = function(chid) which(chid %in% sample(chid, 1))
# the matches function #
fsyn = function(x) sum(x[1,] == x [2,])
# wrapping the function #
funcHamC = function(df) df[wchid(chid), -1] %>% fsyn
によって実現することができるが、単に
funcHamR = function(df) df[sample(df$id, 2), -1] %>% fsyn
df %>% funcHamR
ように書くことができる。しかし、私はこの2つの関数を使用して問題を有しますboot
となります。
library(boot)
boot(df, funcHamC, R = 10)
boot(df, funcHamR, R = 10)
これは機能しません。何か案が ?
データ
df = as.data.frame(t(replicate(20, sample(letters[1:4], 10, T))))
df$id = rep(1:10, 2)
df = df %>% select(id, everything()) %>% arrange(id)
ありがとう – giacomo