考虑以下数据
set.seed(123)
example.df <- data.frame(
gene = sample(c("A", "B", "C", "D"), 100, replace = TRUE),
treated = sample(c("Yes", "No"), 100, replace = TRUE),
resp=rnorm(100, 10,5), effect = rnorm (100, 25, 5))
当它们按基因水平进行比较并按处理分组时,我试图获得所有变量的最大值。我可以像这样创建基因组合,
combn(sort(unique(example.df$gene)), 2, simplify = T)
# [,1] [,2] [,3] [,4] [,5] [,6]
#[1,] A A A B B c
#[2,] B c D c D D
#Levels: A B c D
编辑:我正在寻找的输出是这样的数据框
comparison group max.resp max.effect
A-B no value1 value2
....
C-D no valueX valueY
A-B yes value3 value4
....
C-D yes valueXX valueYY
虽然我能够获得按治疗分组的每个单独基因水平的最大值......
max.df <- example.df %>%
group_by(treated, gene) %>%
nest() %>%
mutate(mod = map(data, ~summarise_if(.x, is.numeric, max, na.rm = TRUE))) %>%
select(treated, gene, mod) %>%
unnest(mod) %>%
arrange(treated, gene)
尽管试图解决这个问题超过一天,但我无法弄清楚如何为每个 2 级基因 比较(A 与 B、A 与 C、A 与 D、B 与 C、B 与D 和 C 与 D)按处理分组。
任何帮助表示赞赏。谢谢。