1) отдельный Использование separate
в пакете тидира:
library(dplyr)
library(tidyr)
df %>%
separate(x, c("x", "y"), sep = "-", extra = "merge")
, дающее:
x y
1 a b-c
2 b d
3 c d_e-f
2) База R Без использования каких-либо пакетов мы можем использовать read.table
. Замените первый минус на пробел первым в вопросе, то мы можем использовать read.fwf
read.fwf(file = textConnection(as.character(df$x)), widths = c(1, 1, 99),
colClasses = c(NA, "NULL", NA), col.names = c("x", NA, "y"))
давая:
x y
1 a b-c
2 b d
3 c d_e-f