使用R中的重复数据进行多重假设检验

问题描述 投票:0回答:1

在以下数据框中,我想比较“对照”复制品和“已处理”复制品,为每种蛋白质计算p值。我对使用R非常陌生,我只想看看我是否可以不再使用Excel来完成这些任务。实际上,我将拥有数千种蛋白质。然后,我将使用p.adjust()纠正多重假设检验。

我将非常感谢您提供任何建议。

Protein Control_1 Control_2 Control_3 Treated_1 Treated_2 Treated_3
1       1      7.15      7.16      7.11      6.91      6.88      6.92
2       2      6.64      6.61      6.59      6.37      6.35      6.41
3       3      3.68      3.78      3.81      2.40      2.09      2.17
4       4      5.04      5.01      4.69      3.43      3.52      3.66
5       5      6.92      6.81      6.90      7.12      7.21      7.27

所需:-

Protein Control_1 Control_2 Control_3 Treated_1 Treated_2 Treated_3 P-value
1       1      7.15      7.16      7.11      6.91      6.88      6.92      0.000413
2       2      6.64      6.61      6.59      6.37      6.35      6.41      0.000742
3       3      3.68      3.78      3.81      2.40      2.09      2.17      0.001010
4       4      5.04      5.01      4.69      3.43      3.52      3.66      0.001262
5       5      6.92      6.81      6.90      7.12      7.21      7.27      0.004306
r testing sample
1个回答
0
投票

由于您是R的新手,因此我提供了易于理解和修改的解决方案。

# Generate data that looks like yours
df <-  data.frame(Protein=1:5,Control_1=rnorm(5,5),Control_2=rnorm(5,5),
           Control_3=rnorm(5,5),Treated_1=rnorm(5,5),Treated_2=rnorm(5,5),
           Treated_3=rnorm(5,5))
p_vals <- NULL
for(i in 1:nrow(df)){
  i.p_val <- t.test(df[i,grep("Control",colnames(df))],
                    df[i,grep("Treated",colnames(df))])$p.value
  p_vals <- c(p_vals,i.p_val)
}
p_vals
df <- cbind(df,Pvalue=p_vals)
df

应该给你

  Protein Control_1 Control_2 Control_3 Treated_1 Treated_2 Treated_3    Pvalue
1       1  5.813581  5.149145  4.662203  5.481839  6.424654  5.503664 0.2621811
2       2  4.191440  6.155372  5.773128  3.941712  5.945056  4.182457 0.4769504
3       3  4.654504  4.598808  5.258675  4.101895  6.135411  4.276641 0.9993112
4       4  5.426672  4.520739  6.293757  3.787395  5.274740  3.847900 0.1909877
5       5  5.614929  6.993289  3.786346  5.193352  5.362928  4.746676 0.7353676

如果愿意,您可以将其从t.test()更改为其他测试,例如非参数测试。

© www.soinside.com 2019 - 2024. All rights reserved.