取消合拢data.frame

时间:2018-06-21 01:33:00

标签: r dplyr collapse tidyr

我有一个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保留到值列,并用逗号折叠对应的冗余id,因此我正在这样做:

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的内容?

1 个答案:

答案 0 :(得分: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
相关问题