考虑以下数据框:
df1
# bacteria sample Number_x Number_y
#1 A HM_001 100 30
#2 B HM_001 50 60
#3 C HM_001 300 10
#4 D A2_HM_001 400 20
#5 E A2_HM_001 22 11
#6 F HM_002 23 35
#7 G HM_002 120 46
#8 H HM_003 50 51
# … with 1,342 more rows
按样本分组,我希望对每种细菌进行逐行双边 Fisher 精确检验。(例如 HM_001 如下所示)。
HM_001 | 编号_x | Number_y |
---|---|---|
一种 | 100 | 30 |
其他(在这种情况下为 B 和 C) | 350 | 70 |
HM_001 | 编号_x | Number_y |
---|---|---|
乙 | 50 | 60 |
其他(在这种情况下为 A 和 C) | 400 | 40 |
依此类推,本质上为数据帧中的 1350 行中的每一行生成一个 p 值。
以下是我的尝试:
Fisher_result <- df1 %>%
group_by(sample) %>%
row_wise_fisher_test(as.matrix(df1[,c(3,4)]), p.adjust.method = "BH")
但它不起作用,输出以下错误消息:
Error in row_wise_fisher_test(., as.matrix(df1[, c(3, 4)]), :
A cross-tabulation with two columns required
任何指针将不胜感激!