我在R方面没有太多经验。因此,在我的情况下,我有一个数据框,其中包含基因名称和它们在不同组织(组织,例如RAM、SAM等)中的表达(每个组织重复3次-RAM 1、RAM 2、RAM 3)(DeSEQ 2包结果)。看起来像这样:
RAM1 RAM2 RAM3 SAM1 SAM2.....
gene.01G000150 3.112134 0.00000 0.00000 7.5206516 1.252147
.....
所以我想计算每个组织的平均值,然后用这些平均值建立一个新的数据框架。
所需输出:一个类似下面的表:
RAM(mean) SAM(mean)....
gene.01G000150 5.578 3.5...
...
你现在有什么有效的和可重复的方法来做吗?
update:这个函数看起来很有用:check_genes$SAM <-apply(check_genes[c("SAM1", "SAM2","SAM3")], MARGIN=1, FUN=function(x) mean(x[x!=0]))
,但您必须对您拥有的每个复制品单独执行此操作。
1条答案
按热度按时间fbcarpbf1#
如果我理解正确的话--一个很大的如果!--你想要每个组织/基因组合的平均表达,对吗?所以,你想要三次运行的平均值,
如果是这样的话,我会先重组数据,让生活更容易。你没有包括一个数据集,我可以用来演示的目的,所以我构建了一个虚拟的。
接下来,我将数据从宽格式转换为长格式:
最后,我将组织/运行编号变量分成其组成部分(即组织和运行编号),按组织和基因分组,然后取重复样本的平均值。
这是否是所需的输出?
根据更新后的问题,需要采取最后一个步骤: