【问题标题】:Combine values into same column separated by a comma将值合并到用逗号分隔的同一列中
【发布时间】:2020-12-04 17:06:06
【问题描述】:

我有一个包含 2 列的数据框。而且我想将 GO 列中的名称组合到同一个单元格中,只要它们在列目标中具有相同的名称,就用逗号分隔。

head(a)

                           targets         GO
1 TRINITY_GG_100008_c0_g1_i8.mrna1 GO:0030515
2 TRINITY_GG_100008_c0_g1_i8.mrna1 GO:0030515
3 TRINITY_GG_100016_c0_g1_i1.mrna1 GO:0003996
4 TRINITY_GG_100016_c0_g1_i1.mrna1 GO:0004467
5 TRINITY_GG_100016_c0_g1_i1.mrna1 GO:0047676
6 TRINITY_GG_100016_c0_g1_i1.mrna1 GO:0102391

> dput(a)
structure(list(targets = c("TRINITY_GG_100008_c0_g1_i8.mrna1", 
"TRINITY_GG_100008_c0_g1_i8.mrna1", "TRINITY_GG_100016_c0_g1_i1.mrna1", 
"TRINITY_GG_100016_c0_g1_i1.mrna1", "TRINITY_GG_100016_c0_g1_i1.mrna1", 
"TRINITY_GG_100016_c0_g1_i1.mrna1"), GO = c("GO:0030515", "GO:0030515", 
"GO:0003996", "GO:0004467", "GO:0047676", "GO:0102391")), row.names = c(NA, 
6L), class = "data.frame")

到目前为止,我已经使用 dplyr 尝试过,但我还没有。

a %>% group_by(targets) %>%
    summarize(GO, sep","))

我希望结果如下所示:

                         targets         GO
TRINITY_GG_100008_c0_g1_i8.mrna1       GO:0030515, GO:0030515 
TRINITY_GG_100016_c0_g1_i1.mrna1       GO:0003996, GO:0004467, GO:0047676, GO:0102391

希望有人可以帮助我! 谢谢

【问题讨论】:

  • toString函数。
  • 谢谢,我刚刚解决了。我想我发布的问题太快了。 a %>% group_by(targets) %>% summarise_all(funs(paste(na.omit(.), collapse = ",")))
  • 您可以自行回答问题并将其标记为已接受以表明问题已解决。

标签: r dplyr


【解决方案1】:

很高兴这一切都很快得到解决。这是万一以后有人遇到同样问题的答案。

a %>% group_by(targets) %>% 
summarise_all(funs(paste(na.omit(.), collapse = ",")))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-07
    • 2011-06-19
    • 1970-01-01
    • 1970-01-01
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多