首页 > 解决方案 > R t 检验 2 组,3 次重复,每组有多个值进行比较

问题描述

我每组有三个样本(重复)。我想使用 T 检验来比较组之间的值 (MappedReadsCPM)。但是,我有 4000 个值要按顺序比较(由 PeakNumber 指定)。以下行很接近,但它并没有告诉 R 只比较 peak_1,然后只比较 peak_2,等等。

    t.test(MappedReadsCPM~Group, data=subset(data2, Group %in% c("1", "2")))$p.value

我不想打印 4000 个 p 值 - 理想情况下,我可以将它们添加到数据框中。

    pvalues <- t.test(MappedReadsCPM~Group, data=subset(data2, Group %in% c("1", "2")))$p.value

数据2

PeakNumber Sample   Group   MappedReadsCPM
peak_1  A   1   43.53819
peak_2  A   1   49.20722
peak_3  A   1   38.54943
peak_4  A   1   99.09472
peak_1  B   2   105.21728
peak_2  B   2   42.63114
peak_3  B   2   78.00591
peak_4  B   2   74.37773
peak_1  C   2   509.30606
peak_2  C   2   101.36234
peak_3  C   2   25.17051
peak_4  C   2   32.8804
peak_1  D   1   35.37478
peak_2  D   1   89.11722
peak_3  D   1   112.24688
peak_4  D   1   386.40139
peak_1  E   3   631.07692
peak_2  E   3   162.58791
peak_3  E   3   46.93961
peak_4  E   3   56.69035
peak_1  F   2   38.7762
peak_2  F   2   261.45587
peak_3  F   2   43.99171
peak_4  F   2   72.11012
peak_1  G   1   118.5962
peak_2  G   1   250.1178
peak_3  G   1   84.35
peak_4  G   1   386.40139

标签: rsubsett-test

解决方案


您可以使用sapply循环遍历数据中的所有独特峰并将数据子集到该特定峰:

pvalues <- sapply(unique(data2$PeakNumber), function(peak){
  t.test(MappedReadsCPM~Group, data=subset(data2, Group %in% c("1", "2") & PeakNumber == peak))$p.value
})

推荐阅读