我只是围绕着R,并使用limma进行微阵列分析。我已经拿起了我的Control(CC)和实验(EE)数据。
我最终获得了一个具有微阵列强度结果的EList。 列是CC-1,CC-2,CC-3和EE-1,EE-2,EE-3,探针名称和系统名称 我想添加2列,分别是CC 1-3的平均值和EE 1-3的平均值,但我不确定如何做到这一点。有一种简单的方法吗?
我可以在excel中完成,但我真的想熟悉R并且流利地使用它。
答案 0 :(得分:1)
首先,我使用一些伪微阵列信号值创建了一个数据帧:
d = data.frame(abs(matrix(rnorm(30,mean=5),5,6)))
cc = c('CC-1', 'CC-2', 'CC-3')
ee = c('EE-1', 'EE-2', 'EE-3')
colnames(d) = c(cc,ee)
d
CC-1 CC-2 CC-3 EE-1 EE-2 EE-3
1 4.775333 4.702609 6.555690 4.853671 5.391154 6.252322
2 2.819228 4.899276 3.021709 4.474202 4.432656 4.576010
3 4.329981 5.689807 4.417229 5.444785 2.603174 3.207310
4 4.657848 4.840904 5.955579 6.359203 5.093865 5.255560
5 5.631977 5.043603 5.777581 3.985867 2.387029 5.115502
然后使用apply
运行一个函数,按行(cc
参数计算ee
列(以及第二个应用行中的1
列)的平均值)。 cc
和ee
均值的向量被指定为data.frame的新列。
d$ccm=apply(d, 1, FUN=function(x) { mean(x[cc]) } )
d$eem=apply(d, 1, FUN=function(x) { mean(x[ee]) } )
d
CC-1 CC-2 CC-3 EE-1 EE-2 EE-3 ccm eem
1 4.775333 4.702609 6.555690 4.853671 5.391154 6.252322 5.344544 5.499049
2 2.819228 4.899276 3.021709 4.474202 4.432656 4.576010 3.580071 4.494289
3 4.329981 5.689807 4.417229 5.444785 2.603174 3.207310 4.812339 3.751756
4 4.657848 4.840904 5.955579 6.359203 5.093865 5.255560 5.151444 5.569543
5 5.631977 5.043603 5.777581 3.985867 2.387029 5.115502 5.484387 3.829466