С separate
мы можем передавать поисковые запросы регулярного выражения. В этом случае будет соответствовать -
, которое предшествует 4 di git, или -
, которое следует за 4 di git
library(tidyr)
separate(df1, pub_author, into = c('website_title','year', 'author'),
"-(?=\\d{4})|(?<=\\d{4})-")
# website_title year author
#1 nfl-draft-geek 2018 justin-miller
#2 cbs 2019 pete-prisco
#3 sb-nation 2020 dan-kadar
#4 football-fan-spot 2019 steven-lourie
#5 fanspeak 2018 william
#6 acme-packing-company 2020 shawn-wagner
data
df1 <- structure(list(pub_author = c("nfl-draft-geek-2018-justin-miller",
"cbs-2019-pete-prisco", "sb-nation-2020-dan-kadar",
"football-fan-spot-2019-steven-lourie",
"fanspeak-2018-william", "acme-packing-company-2020-shawn-wagner"
)), class = "data.frame", row.names = c(NA, -6L))