将plyr与巴纳德试验结合使用

将plyr与巴纳德试验结合使用,r,plyr,R,Plyr,我正在做一些社会科学研究,偶然发现一篇文章讨论了不同的精确测试,包括伯纳德测试。几位作者在2009年讨论了Fisher的精确检验和Bernard的Lydersen检验之间的差异,在2003年讨论了Mehta和Senchaudhuri检验之间的差异,但我只是好奇我是否能亲眼看到这种差异,并在这个过程中对R有更多的了解。我找到了一种让费舍尔的测试发挥作用的方法,但巴纳德的测试让我难以捉摸: library(plyr) library(Barnard) rook <- expand.gr

我正在做一些社会科学研究,偶然发现一篇文章讨论了不同的精确测试,包括伯纳德测试。几位作者在2009年讨论了Fisher的精确检验和Bernard的Lydersen检验之间的差异,在2003年讨论了Mehta和Senchaudhuri检验之间的差异,但我只是好奇我是否能亲眼看到这种差异,并在这个过程中对R有更多的了解。我找到了一种让费舍尔的测试发挥作用的方法,但巴纳德的测试让我难以捉摸:

 library(plyr)
 library(Barnard)

 rook <- expand.grid(a=0:5,b=0:5,c=0:5,d=0:5)

 sums <- ddply(rook, .(a,b,c,d), sum)

 system.time(
 Fisher.l <- ddply(rook, .(a,b,c,d),function(z)
      fisher.test(matrix(unlist(z[,c(1,2,3,4)]),
      ncol=2),alternative="less")$p.value)
 )
但这两种方法都不管用。。。他们试图用两种方式做同一件事

 system.time(
      Barnard <- ddply(rook, .(a,b,c,d), function(z)
      barnardw.test(unlist(z[,c(1,2,3,4)]), ncol=2))$p.value[[1]])
 )

 system.time(
      Barnard <- ddply(rook, .(a,b,c,d), function(z)
      barnardw.test(z[,1],z[,2],z[,3],z[,4]))$p.value[[1]])
 )

我在这里找到了Barnard精确测试的R代码,下载并运行。我不知道它是否有兴趣或有帮助。你的第二个例子对我很有用,当我去掉孤独的s。