Я бы предложил хранить каждую запись в отдельном ряду, а не объединять их вместе. Использование dplyr
и tidyr
в одну сторону будет
library(dplyr)
library(tidyr)
df %>%
separate_rows(outcome, sep = ";") %>%
separate(outcome, c("Name", "Role", "Company"), sep = ", ")
# Name Role Company
#1 Stewart Young CEO ABC Corp
#2 Mark Hill CFO DCB Corp
#3 Hill Man Executive FC Bank
Однако, если вам нужен вывод, как показано, мы можем сделать
df %>%
mutate(row = row_number()) %>%
separate_rows(outcome, sep = ";") %>%
separate(outcome, c("Name", "Role", "Company"), sep = ", ") %>%
group_by(row) %>%
summarise_all(toString) %>%
select(-row)
# Name Role Company
# <chr> <chr> <chr>
#1 Stewart Young, Mark Hill CEO, CFO ABC Corp, DCB Corp
#2 Hill Man Executive FC Bank
data
df <- structure(list(outcome = structure(2:1, .Label = c("Hill Man,
Executive, FC Bank", "Stewart Young, CEO, ABC Corp; Mark Hill, CFO, DCB Corp"),
class = "factor")), class = "data.frame", row.names = c(NA, -2L))