【发布时间】:2021-04-19 21:21:35
【问题描述】:
嗨,假设我有一个这样的数据框,
df = data.frame (
color = c("blue")
,sample = c( "A")
,size = c("L,S,XL")
, sex = c ( "M,F")
)
color sample size sex
1 blue A L,S,XL M,F
理想情况下,我希望通过分隔大小和性别将其拆分为新行。 以便新的数据框看起来像这样。
color sample size sex
1 blue A L M
2 blue A L F
3 blue A S M
4 blue A S F
5 blue A XL M
6 blue A XL F
我尝试用这种方式拆分它,但它会导致一些错误。
df %>% tidyr::separate_rows(size, sex) %>% data.frame()
【问题讨论】:
-
基本 R 选项:
expand.grid(lapply(df, function(x) unlist(strsplit(x, split = ","))))
标签: r dplyr data.table