R - 为配对(错误)匹配实现引导功能

时间:2016-12-20 19:26:58

标签: r sequence bootstrapping

我在gradle.bat库中实现函数时遇到问题。

我想实现的功能如下

boot

这是两个序列之间的匹配的计数。

我的数据是一组序列,例如

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来引导比赛次数,第二次用于两个随机个人。

第一个程序可以通过

实现
id

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 

第二个功能可以简单地写成

df %>% funcHamC

但是,我在funcHamR = function(df) df[sample(df$id, 2), -1] %>% fsyn df %>% funcHamR 使用这两个函数时遇到了问题。

boot

这不起作用。任何的想法 ?

数据

library(boot)
boot(df, funcHamC, R = 10)
boot(df, funcHamR, R = 10)

1 个答案:

答案 0 :(得分:2)

boot函数需要statistic函数的两个参数 - 第二个参数是指定要选择的样本值的参数。因为您使用自己的方法从数据中随机选择,所以应将sim参数设置为'parametric'。这将使用ran.gen参数指定从数据生成随机值的函数。

引用帮助文件:“如果未指定ran.gen,则默认值为返回原始data的函数,在这种情况下,所有模拟都应作为{{1}的一部分包含在内}“。

将引导输出保存到变量 - 例如statisticC.boot,您会在R.bootC.boot$t中找到示例。

R.boot$t

然后,您可以从生成的值中获取所需的统计数据。