【问题标题】:R: How to combine duplicated rows from multiple columns based on unique values in a single column and merge those unique values by |?R:如何根据单列中的唯一值组合来自多列的重复行并通过|合并这些唯一值?
【发布时间】:2020-03-16 09:25:28
【问题描述】:

我有以下数据框:

gene    gene_name   source  chromosome  details
1       a           A           2       01; xyz
1       a           A           2       02; ijk
2       b           B           3       03; efg
2       b           C           3       03; efg
3       c           D           4       04; lmn
3       c           D           4       05; opq
3       c           D           4       06; rst
4       NA          10          6       NA
4       NA          11          6       NA

我想得到以下输出:

gene    gene_name   source  chromosome  details
1       a           A       2           01; xyz | 02;ijk
2       b           B, C    3           03; efg
3       c           D       4           04; lmn | 05; opq | 06; rst
4       NA          10, 11  6           NA | NA

我尝试以不同的方式使用 aggregate() 和 group_by(),但没有得到它。

请指导。

谢谢。

【问题讨论】:

    标签: r dataframe rstudio rows


    【解决方案1】:

    这应该可行:

    df %>%
      group_by(gene, gene_name, source, chromosome) %>%
      summarise(details = paste(details, collapse = " | "))
    

    我在 iris 上运行了以下结果,结果与您描述的相似

    iris %>%
      group_by(Sepal.Length, Sepal.Width, Petal.Length, Species) %>%
      summarise(Petal.Width = paste(Petal.Width, collapse = " | "))
    

    【讨论】:

    • @stackoverflow.com/users/4433052/martin 谢谢,但输出没有显示任何变化。 :-(
    • 我将上面的内容编辑如下:``` df % group_by(gene,gene_name,source,chromosome) %>% summarise(details = paste(details, collapse = " | ")) ``` 它奏效了。 :-)
    猜你喜欢
    • 2018-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多