我有一个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.frame
与id
的WRT顺序相同df
的内容?
答案 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