【发布时间】:2021-10-18 04:50:52
【问题描述】:
我有这个数据框to_expand 有两列:
to_expand <- data.frame(first = c('a~b'), second = paste(list(c('1~2~3'), c('4~5~6')), collapse = '|'))
first second
1 a~b 1~2~3|4~5~6
我怎样才能把它变成:
# A tibble: 2 x 2
first second
<chr> <chr>
1 a 1~2~3
2 b 4~5~6
我尝试过使用tidyr 中的sepratate_rows(),但它给出了两列之间所有可能的组合。
任何帮助将不胜感激!
编辑:使用separate_rows(second, sep = '\\|') 在两行都给了我a~b。
> to_expand %>% separate_rows(second, sep = '\\|')
# A tibble: 2 x 2
first second
<chr> <chr>
1 a~b 1~2~3
2 a~b 4~5~6
【问题讨论】:
-
|是正则表达式中的特殊字符。试试tidyr::separate_rows(to_expand, second, sep = '\\|') -
嗨@RonakShah,使用
separate_rows(second, sep = '\\|')在两行都给了我a~b。如何将a保留在第一行,将b保留在第二行?