这是我的方法,仅假设没有顺序"<sep>"
在您的专栏中:
input %>%
mutate(across(-col_1,
~ str_replace_all(., "\\([^)]*\\)",
\(x) str_replace_all(x, ";", "<sep>")))) %>%
pmap(\(...) {
args <- list(...)
entries <- map(args[-1], ~ first(str_split(., ";")))
map(entries, \(e) {
c(e, rep(e[length(e)], do.call(max, map(entries, length)) - length(e)))
}) %>%
bind_rows() %>%
bind_cols(args[1], .)
}) %>%
bind_rows() %>%
mutate(across(-col_1, ~ str_replace_all(., "<sep>", ";")))
Returns:
# A tibble: 7 x 4
col_1 Col_2 Col_3 Col_4
<chr> <chr> <chr> <chr>
1 A Text_A Text_1 Text_a
2 A Text_B Text_1 (Text_b;Text_c)
3 A Text_B Text_1 (Text_d;Text_dd)
4 B Text_C Text_2 Text_e
5 B Text_C Text_3 Text_e
6 C Text_D Text_4 Text_f
7 C (Text_E;Text_F) Text_4 Text_g