Search code examples
rregextidyr

Separating character strings into columns that have dash and space pattern


What is the regex pattern that I need to specify in sep to separate timestamps into two separate columns? Example:

dat <- data.frame(x = c("08:00:00- 10:00:00", "09:00:00- 11:00:00")
dat %>% 
  separate(col = x, into=c("start_time", "end_time", sep = "- "))

Results in:

  start end - 
1    08  00 00
2    09  00 00
Warning message:
Expected 3 pieces. Additional pieces discarded in 2 rows [1, 2]. 

Solution

  • It will work

    dat %>%
      separate(col = x, into = c("start_time", "end_time"), sep = "[- ]+")