Вот как вы могли бы что-то подобное с нуля:
string <- "A-B-C-E"
str_vec <- strsplit(string, "-")[[1]]
n <- length(str_vec)
data.frame(
col1 = rep(str_vec, n-1:n),
col2 = str_vec[unlist(sapply(2:n, `:`, n))]
)
col1 col2
1 A B
2 A C
3 A E
4 B C
5 B E
6 C E