# NOT RUN { hw <- "Hadley Wickham" str_sub(hw, 1, 6) str_sub(hw, end = 6) str_sub(hw, 8, 14) str_sub(hw, 8) str_sub(hw, c(1, 8), c(6, 14)) # Negative indices str_sub(hw, -1) str_sub(hw, -7) str_sub(hw, end = -7) # Alternatively, you can pass in a two colum matrix, as in the # output from str_locate_all pos <- str_locate_all(hw, "[aeio]")[[1]] str_sub(hw, pos) str_sub(hw, pos[, 1], pos[, 2]) # Vectorisation str_sub(hw, seq_len(str_length(hw))) str_sub(hw, end = seq_len(str_length(hw))) # Replacement form x <- "BBCDEF" str_sub(x, 1, 1) <- "A"; x str_sub(x, -1, -1) <- "K"; x str_sub(x, -2, -2) <- "GHIJ"; x str_sub(x, 2, -2) <- ""; x # If you want to keep the original if some argument is NA, # use omit_na = TRUE x1 <- x2 <- x3 <- x4 <- "AAA" str_sub(x1, 1, NA) <- "B" str_sub(x2, 1, 2) <- NA str_sub(x3, 1, NA, omit_na = TRUE) <- "B" str_sub(x4, 1, 2, omit_na = TRUE) <- NA x1; x2; x3; x4 # }
Run the code above in your browser using DataCamp Workspace