【问题标题】:Uncollapsing a data.frame [duplicate]展开data.frame [重复]
【发布时间】:2018-11-30 05:34:48
【问题描述】:

我有一个 data.frame 有几个 numeric 值列和一个字符 id 列:

df <- data.frame(x=c(1,2,2,3,4,5),y=c(11,12,12,13,14,15),id=c("a","b","c","d","e","f"))

我希望 df 只保留唯一行 WRT 到值列,并用逗号折叠冗余对应的 ids,所以我正在这样做:

library(dplyr)
collapsed.df <- df %>% dplyr::group_by_(.dots=colnames(df)[-3]) %>% dplyr::summarise(id=toString(id)) %>% data.frame()

我的问题是我如何解开collapsed.df 以便以逗号分隔的每个collapsed.df$id 被拆分,并且由此产生的膨胀data.frameid 的WRT 顺序与df 的顺序相同?

【问题讨论】:

    标签: r dplyr collapse tidyr


    【解决方案1】:

    你可以使用tidyr::separate_rows:

    collapsed.df %>% separate_rows(id)
    
    #  x  y id
    #1 1 11  a
    #2 2 12  b
    #3 2 12  c
    #4 3 13  d
    #5 4 14  e
    #6 5 15  f
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-22
      • 1970-01-01
      • 2011-07-08
      相关资源
      最近更新 更多