【发布时间】:2021-05-18 20:33:06
【问题描述】:
考虑以下数据框:
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 | Number_x | Number_y |
|---|---|---|
| A | 100 | 30 |
| Others (B and C in this case) | 350 | 70 |
| HM_001 | Number_x | Number_y |
|---|---|---|
| B | 50 | 60 |
| Others (A and C in this case) | 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
任何指针将不胜感激!
【问题讨论】: