在R中怎么把相同行名的行合并为一行?

图片说明
在R中怎么把相同行名的行合并为一行,并对其求平均值
这是我的数据,怎么把行名相同的3、4行,5、6行,8、9、10行找出来,并取平均值呢

qq_44119723
张仟儒 同需求 哭泣
7 个月之前 回复
siyue_054
siyue_054 回复Ke An: 求代码
8 个月之前 回复
siyue_054
siyue_054 求代码
8 个月之前 回复
siyue_054
siyue_054 求代码
8 个月之前 回复
weixin_46089052
Ke An 回复Ke An: 已解决
8 个月之前 回复
weixin_46089052
Ke An 上面的问题你解决了没,求代码。
8 个月之前 回复

2个回答

gene<-你的数据 #第一列是gene_ID 之后列为gene_expression
dup<-data.frame(table(gene$gene_ID)) #这个返回一个矩阵 第一列为Var1是geneID中的所有元素 第二列是Freq 重复次数
dup<-subset(dup,dup$Freq>1) #筛选出dup中重复次数>1的 也就是重复了的 dup返回只有重复元素及重复次数
for(i in 1:nrow(dup)) #遍历dup中所有元素
{row_number<-which(gene$gene_ID==dup[i]) #将gene中geneID和dup【i】相同的行的行数存入row.number中
gene<-gene[-row_number,] #在gene中删除geneID和dup【i】相同的行
duplicate<-gene[row.number,] #将gene中geneID和dup【i】相同的行存入duplicate中
duplicate$mean<-apply(duplicate[,2:nrow(duplicate)],1,mean) #将duplicate的第二列到最后一列的值求平均存入新加列mean中
duplicate<-subset(duplicate,duplicate$mean==max(duplicate$mean),select=-mean) #保留duplicate中mean最大的列 之后删除mean列
gene<-rbind(gene,duplicate) #将duplicate加在gene的最后一行中
}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐