Если нам интересно сделать fisher.test
во всем столбце 'Gene', используя то же условие для 'Cluster'
library(dplyr)
out <- df %>%
summarise_at(vars(starts_with('Gene')), ~
list(table(Cluster == 'a', .) %>%
fisher.test))
out$Gene1
out$Gene2
In base R
, это можно сделать с lapply
out2 <- lapply(df[startsWith(names(df), "Gene")], function(v)
fisher.test(table(df$Cluster == "a", v)))
out2$Gene1
out2$Gene2
данными
df <- structure(list(Tag = 1:5, Cluster = c("a", "b", "c", "d", "e"
), Gene1 = c(1L, 0L, 1L, 0L, 1L), Gene2 = c(0L, 1L, 1L, 0L, 1L
), Gene3 = c(0L, 1L, 0L, 0L, 0L), Gene4 = c(1L, 1L, 0L, 1L, 0L
)), class = "data.frame", row.names = c(NA, -5L))