展开 data.frame
Uncollapsing a data.frame
我有一个 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
s,所以我正在做:
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
具有与 [=15= 相同的 WRT 顺序] 作为 df
?
您可以使用 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
我有一个 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
s,所以我正在做:
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
具有与 [=15= 相同的 WRT 顺序] 作为 df
?
您可以使用 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