【问题标题】:Adding a column with averages in E list在 E 列表中添加具有平均值的列
【发布时间】:2016-05-30 23:53:22
【问题描述】:

我只是在研究 R 并使用 limma 进行微阵列分析。我已经获取了我的控制 (CC) 和实验 (EE) 数据。

我最终得到了一个 EList,它具有微阵列强度的结果。 列是 CC-1、CC-2、CC-3 和 EE-1、EE-2、EE-3、探针名称和系统名称 我想添加 2 列,分别是 CC 1-3 的平均值和 EE 1-3 的平均值,但我不确定该怎么做。有简单的方法吗?

我可以在 excel 中完成,但我真的很想熟悉 R 并流利地使用它。

【问题讨论】:

  • 由于limma是一个Bioconductor包,在Bioconductorsupport forum提出问题是合适的

标签: arrays r bioinformatics


【解决方案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 运行一个函数,该函数逐行(1 参数)计算cc 列(以及第二个应用行中的ee 列)的平均值。 ccee 的均值向量作为新列分配给 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-20
    • 2023-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多