参考链接
https://rforpoliticalscience.com/2024/03/24/how-to-run-multiple-t-tests-in-a-function-with-the-broom-package-in-r/
使用场景
通过gwas鉴定了一些候选基因,同时测了野生型和突变型的转录组,想看一下这些候选基因在野生型和突变型的个体中的表达是否有差异
数据已经整理成了如下格式
image.png
三个基因 A B D
构造数据集
library(tidyverse)
df <- data.frame(gene = c(“A”,”B”,”D”),
ctl = rnorm(12,5,1),
trt = rnorm(12,3,1))
df %>%
pivot_longer(!gene,names_to = “group”,values_to = “TPM”) %>%
arrange(gene,group) %>%
as.data.frame() -> new.dat
使用R语言的tidyverse包 这里用到nest函数
nest函数可以分组把数据折叠起来
比如
new.dat %>%
nest(.by=”gene”)
image.png
new.dat %>%
nest(.by=”gene”,.key = “mydata”)
image.png
new.dat %>%
nest(.by=”gene”,.key = “mydata”) %>%
mutate(t_test=map(mydata,~t.test(TPM~group,data=.)),
tidy=map(t_test,broom::tidy)) %>%
unnest(tidy)
image.png
欢迎大家关注我的公众号
声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/420714.html