janeheather 2019-02-27 04:36 采纳率: 0%
浏览 11180

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

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

  • 写回答

2条回答 默认 最新

  • weixin_45344380 2020-05-17 20:48
    关注

    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的最后一行中
    }

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog