美文网首页生信修炼Cook R生物信息学与算法
R将包含重复列的去重并合并值

R将包含重复列的去重并合并值

作者: LeoinUSA | 来源:发表于2018-07-04 09:21 被阅读4次

1. 问题

假设我们有数据框df如下:

Chr start   stop    ref alt Hom/het ID  
chr1    5179574 5183384 ref Del Het 719  
chr1    5179574 5184738 ref Del Het 915  
chr1    5179574 5184738 ref Del Het 951  
chr1    5336806 5358384 ref Del Het 376  
chr1    5347979 5358384 ref Del Het 228  

所示ID915和951前面的部分都重复了,现在我们想把它变成如下

Chr start   stop    ref alt Hom/het ID  
chr1    5179574 5183384 ref Del Het 719  
chr1    5179574 5184738 ref Del Het 915, 951 
chr1    5336806 5358384 ref Del Het 376  
chr1    5347979 5358384 ref Del Het 228  

我们可以根据以下命令进行实现

df1 <- aggregate(df[7], df[-7], unique)
# 或者
df2 <- aggregate(df[7], df[-7], FUN = function(X) paste(unique(X), collapse=", "))

2. 解释

aggregate函数应该是数据处理中常用到的函数,它首先将数据进行分组(按行),然后对每一组数据进行函数统计。简单说有点类似sql语言中的group by,可以按照要求把数据打组聚合,然后对聚合以后的数据进行加和、求平均等各种操作。

applying a function specified by the FUN parameter to each column of sub-data.frames defined by the by input parameter.

aggregate(x ,by,FUN )    
# x:待折叠的数据 by:统计标量   FUN 折叠计算

所以上面的命令意味着将除去ID的数据按照行作为统计标量(by)进行ID选择,将选到的ID作为要进行操作的对象输入到FUN中。

相关文章

  • R将包含重复列的去重并合并值

    1. 问题 假设我们有数据框df如下: 所示ID915和951前面的部分都重复了,现在我们想把它变成如下 我们可以...

  • js合并数组并去重

    // 合并数组并去重 mergeArray (arr1, arr2) { var _arr = new ...

  • Javascript数组方法

    扁平化N维数组 去重 排序 最大值 求和 合并 是否包含 类数组转换 每一项设值 每一项是否满足 every 有一...

  • 数据清洗小结

    表观处理 去重:将重复的数据去除掉 合并:将不同的数据表合并在一起,组成‘大’维度表 深入处理 缺失值:该部分处理...

  • 数组去重,数据合并,数组合并去重等ES6语法

    数组去重 数组合并 数组合并去重 淘宝首页到底用了多少种标签(面试题) 对象合并 数组合并替换

  • Oracle常用语句

    剔重语句 将多行数据进行合并 将合并行字段分开(正则表达式) 数学函数: 绝对值:abs() 取整函数(大):ce...

  • Java把多个list 合并成一个并去重

    Java把多个list 合并成一个并去重 开发过程中遇到一个合并去重问题,任务完成后,总结出来一个比较简单的...

  • 七、Set,Map

    Set,类似数组,但成员值都是唯一的 1、遍历,key和value一样 2、数组去重 3、合并去重 4、取两个数组...

  • Java8 根据对象某个属性值去重

    list中的对象某个属性存在重复时将重复的对象去重 //根据skuAttrValueName值去重 Listuni...

  • lodash 常用方法

    数组对象根据某一个值去重 数组去重 两个数组对象对比根据某一个值去重 若干数组并集,交集,补集 陆续更新

网友评论

  • 王诗翔:这应该是叫去除重复行~dplyr有没有类似效果的操作呢
    LeoinUSA:其实不止是除去重复行啦,否则会简单些,这个依据前两列重复的内容,将第三列的内容合并了,原因是我最近做基因注释的时候发现有些基因有多个注释,然后我想把多个注释合并起来

本文标题:R将包含重复列的去重并合并值

本文链接:https://www.haomeiwen.com/subject/obbsuftx.html