我正在交叉两个文件,然后对结果进行费希尔测试和浓缩测试。然而,在进行费希尔测试之后,出现了一个我不理解的错误。
> ee=c()
> E=c()
> for (e in 1: length(conditions))
+ {
+ for(i in 1: length(view))
+ {
+ A=length(na.omit(intersect(conditions[,e], view[,i])))
+ B=length(na.omit(intersect(conditions[,1], view[,i])))
+ C=length(na.omit(conditions[,e]))
+ D=length(na.omit(conditions[,1]))
+ ee=c(ee, fisher.test(matrix(c(A,B-A,C-A,A-B-C+D),nrow=2,ncol=2)
+ ,alternative="two.sided")$p.val)
+ E=c(E, (A/B) / ((C-A)/(D-B)))
+} +} fisher.test中的错误(矩阵(c(A,B - A,C - A,A - B - C + D),nrow = 2,: ' x'的所有条目必须是非负的和有限的
EE
[1] 1.000000e+00 1.000000e+00 1.000000e+00 1.000000e+00 1.000000e+00 1.000000e+00 1.000000e+00
[8] 1.000000e+00 1.000000e+00 1.000000e+00 1.000000e+00 2.429018e-05 1.572763e-01 1.000000e+00
[15] 3.620512e-03 6.605189e-01 3.930938e-01 7.564593e-01 8.356520e-01 8.354842e-01 8.718355e-01
[22] 1.000000e+00 7.174337e-01 1.813913e-01 3.480816e-01 9.189262e-02 8.892926e-01 6.528839e-02
[29] 1.000000e+00 8.452332e-01 1.000000e+00 1.000000e+00 1.000000e+00
电子
[1] 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
[11] NaN 0.2527881 0.6250381 0.9075342 2.1028830 0.8772727 0.6801843 1.1282051 0.8698752 0.9007353
[21] 0.9247312 NaN 0.8624535 1.3294461 0.5018939 0.5030426 1.0376344 1.5870968 0.9445438 0.9242424
[31] 0.9570313 0.9907834 NaN
"条件" dataframe包含10列," view" dataframe包含11列。交叉后,我预计会有一个110结果来自费希尔测试和浓缩计算(E = c(E,(A / B)/((C-A)/(D-B)))),而不是输出中的33。两个数据帧中都有NA,但na.omit应该注意这一点,所有其他值都只是正数值。
非常感谢帮助。