您可以执行以下操作。但是由于您并没有真正给出可重现的示例,因此我首先创建了一些玩具数据:
set.seed(1)
print(dat <- matrix(rbinom(n = 40, size = 1000, prob = 0.5), ncol = 4))
# [,1] [,2] [,3] [,4]
# [1,] 500 526 494 505
# [2,] 497 500 512 493
# [3,] 480 488 500 512
# [4,] 464 513 498 497
# [5,] 527 503 518 508
# [6,] 504 517 511 483
# [7,] 519 493 522 471
# [8,] 486 490 497 507
# [9,] 492 499 475 509
#[10,] 530 486 488 501
# Function to be applied row-wise
rowFisher <- function(x, ...) {
return(fisher.test(matrix(x, nrow = 2, ...))$p.value)
}
# Apply the function row-wise
apply(dat, 1, rowFisher)
# [1] 0.7557946 0.6548804 0.9641424 0.2603181 0.7912598 0.3729036 0.5916955 0.9283668 0.5585135
#[10] 0.2111895
编辑我没有看到你的评论。但这应该可以解决问题。如果没有,可能您的数据中某处有一些NA
s 或其他非数字值。