在下面的数据框中,我想计算每种蛋白质的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
用@StupidWolf的评论更新。
由于您是RI的新手,因此提供了一种易于理解和修改的解决方案。
# 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 <- rep(NA,nrow(df))
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[i] <- i.p_val
}
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()
愿意,可以将其从其他测试更改为非参数测试。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句