Как str_split текст на несколько столбцов, используя purrr
У меня есть фрейм данных, и я хочу разделить столбец на 3 другой:
df<-data.frame(x=1:5,y=paste0("num-",1:5,"-ber"))
df
x y
1 1 num-1-ber
2 2 num-2-ber
3 3 num-3-ber
4 4 num-4-ber
5 5 num-5-ber
Результат должен быть примерно таким:
x y1 y2 y3
1 1 num 1 ber
2 2 num 2 ber
3 3 num 3 ber
4 4 num 4 ber
5 5 num 5 ber
Я пытаюсь вариации что-то вроде этого:
df%>%
purrr::map_chr(stringr::str_split(y,pattern="-"))
Но без каких-либо положительных результатов
Спасибо!
1 ответ
Решение
Мы можем использовать separate
от tidyr
который автоматически выбирает разделитель, если sep
не указано В этом случае это -
library(dplyr)
library(tidyr)
df %>%
separate(y, into= paste0('y', 1:3))
# x y1 y2 y3
#1 1 num 1 ber
#2 2 num 2 ber
#3 3 num 3 ber
#4 4 num 4 ber
#5 5 num 5 ber
Или base R
вариант будет читать с read.table
указав sep
как -
а также cbind
с колонкой "х"
cbind(df['x'], read.table(text=as.character(df$y), sep="-", col.names = paste0("y", 1:3)))