Search code examples
rdata-cleaning

Delete after the space


I have this dataset I need to delete (Delete and Trash) everything after the name city. How can I do?

dati1<- c("a - Novara Delete", "b - Torino Trash", "c - Milano", "f - Bari")
    
dati2 <-data.frame(do.call(rbind, strsplit(dati1, split = " - ")))

I have tried:

c <- dati2$X2 %>%  mutate(dati2$X2 = sub("\\s+[^ ]+$", "", dati2$X2))

Solution

  • You can use separate:

    tidyr::separate(data.frame(dati1), col = dati1, into = stringr::str_c("col", 1:2), extra = 'drop')
    
      col1   col2
    1    a Novara
    2    b Torino
    3    c Milano
    4    f   Bari
    

    or with base R

    data.frame(do.call(rbind, lapply(strsplit(dati1, split = "[^[:alnum:]]+"), head, 2)))