R中的Fisher精确检验

时间:2015-03-04 18:26:34

标签: r

我的数据如下所示:

chr1    876499  A   517    G    948 A   353  G  964
chr1    877715  C   1166   G    883 C   555  G  944
chr1    877831  T   0      C    1   T   0    C  1
chr1    878314  G   933    C    666 G   89   C  106
chr1    878331  C   983    T    166 C   994  T  505

我想通过以下所示的方式从第4,6,8和10列制作矩阵来进行Fisher精确测试:

例如第一行:

       u    v
X   517   948
Y   353   964

它应计算Fisher-exact p值,并将其作为新列添加到每一行。由于我新手到R我没有任何代码。任何帮助都很有价值。

感谢。

1 个答案:

答案 0 :(得分:1)

尝试:

 d.frm <- read.table(textConnection("
 chr1    876499  A   517    G    948 A   353  G  964
 chr1    877715  C   1166   G    883 C   555  G  944
 chr1    877831  T   0      C    1   T   0    C  1
 chr1    878314  G   933    C    666 G   89   C  106
 chr1    878331  C   983    T    166 C   994  T  505
 "))

d.frm$pval <- apply(as.matrix(d.frm[, c(4,6,8,10)]), 1, 
                    function(x) fisher.test(matrix(x, nrow=2))$p.value)