0

我有一个大型数据框,其中包含来自组织微阵列的 70 个不同组织核心的大约 300 种与乳腺癌相关的不同蛋白质的峰值强度读数。数据框如下所示:

行为 蛋白质1 蛋白质2 蛋白质3 ... 蛋白质300
1 正常乳房 1240 450 545 ... 598
2 独联体 350 629 1496 ... 345
3 独联体 3040 500 345 ... 3456
4 正常乳房 800 789 2348 ... 456
... ... ... ... ... ... 898
70 独联体 589 2305 723 ... 4567

我想对每种蛋白质的峰值强度读数运行 300 次单独的 t 检验,其中行为列(“正常乳房”与“CIS”)是分组变量,每个蛋白质列下的峰值强度读数是因变量。“正常乳房”与“CIS”的样本量不相等。如果有一个函数可以根据 p<0.05 对蛋白质进行分组,那也很好,这样我就不必手动梳理每个 t 检验结果。

4

1 回答 1

0

可能这有帮助

nm1 <- grep('Protein', names(df1), value = TRUE)
lapply(nm1, function(nm) 
   t.test(as.formula(paste0(nm, "~ Behavior")), df1[c("Behavior", nm)]))

数据

df1 <- structure(list(Core = 1:4, Behavior = c("Normal Breast", "CIS", 
"CIS", "Normal Breast"), Protein1 = c(1240, 350, 3040, 800), 
    Protein2 = c(450, 629, 500, 789)), class = "data.frame", 
    row.names = c(NA, 
-4L))
于 2021-01-10T22:15:20.650 回答