R语言按列均值去除基因表达数据框中的重复行
解决重复基因行的均值合并问题
针对你手里的基因表达数据框,要按基因分组、计算每组内各样本列的均值并保留唯一行,这里有两种简单高效的实现方式:
方法一:使用dplyr(tidyverse风格)
dplyr的语法更直观,适合处理这类分组聚合的需求:
首先先加载dplyr包(如果没安装先运行install.packages("dplyr")):
library(dplyr)
然后基于你的数据框df,按GENES分组后,对所有数值列计算均值:
df_cleaned <- df %>% group_by(GENES) %>% summarise(across(everything(), mean))
运行后你会得到去重后的结果,比如基因A1BG的Group1值就是你手动计算的mean(-0.9092227, -1.48751, -2.79559765),结果完全一致。
方法二:使用Base R的aggregate函数
如果你不想额外加载包,base R的aggregate函数也能轻松搞定:
df_cleaned <- aggregate(. ~ GENES, data = df, FUN = mean)
这个公式里的.代表除了分组列(GENES)之外的所有列,FUN=mean指定用均值来聚合重复行。
验证结果
比如我们手动计算A1BG的Group1均值:
mean(-0.9092227, -1.48751, -2.79559765) # 结果是 -1.730777
查看处理后的df_cleaned里A1BG的Group1值,会和这个结果完全匹配,其他列的均值也都正确计算。
内容的提问来源于stack exchange,提问作者ASF
相关产品推荐
相关产品推荐

