我有一个21列的数据框架,每三列是一个特定的时间点。我想计算三次重复测定的平均值。
geneName t11 t12 t13 t21 t22 t23 t31 t32 t33 t41 t42 t43 t51 t52 t53 t61 t62 t63
gene1 gene1 3296 5133 3466 2166 1759 2099 1916 1379 1570 2533 1794 1016 800 79 648 99 60 152
gene2 gene2 4210 5505 4173 2736 2748 3052 2409 1944 2237 1158 3475 1488 4023 102 940 265 365 124
...
在上面的例子中,我想计算三个t1
,t2
,t3
等的平均值。
6条答案
按热度按时间rsl1atfo1#
这是一个基本的R方法-
sub('\\d$', '', names(tmp))
将删除列名的最后一个数字,以便t11
,t12
和t13
都将仅返回t1
,并且对于传递给split.default
的其他组也是如此,split.default
基于这些组在dataframe列表中分割数据。对于每组,我们使用rowMeans
计算行平均值。mzsu5hc02#
tidyverse
解决方案:czq61nw13#
另一种基于R的方法:
rqenqsqc4#
cmssoen25#
这里是另一个选项:
okxuctiv6#
即使我喜欢Ronak的圆滑答案,我仍然更喜欢使用Tidyverse语法的计算。我发现它更干净,更清晰。
不过还是谢谢你的帮助