1) str_sub <- </strong> Функция замены str_sub<-
в пакете stringr может сделать это.
library(stringr)
str_sub(a, 6, 8) <- "_"
a
## [1] "UHI78_RH2V" "TYR32_ASJKDG" "DHA92_SYFN34"
2 База R Только с базой R вы можете сделать это. Он заменяет всю строку соответствием первой группе захвата, подчеркиванием и соответствием второй группе захвата.
sub("(.....)...(.*)", "\\1_\\2", a)
## [1] "UHI78_RH2V" "TYR32_ASJKDG" "DHA92_SYFN34"
Это регулярное выражение также можно записать как "(.{5}).{3}(.*)"
.
3) разделить / объединить Если a
является столбцом во фрейме данных, тогда мы могли бы использовать dplyr и tidyr для этого:
library(dplyr)
library(tidyr)
DF <- data.frame(a)
DF %>%
separate(a, into = c("pre", "junk", "post"), sep = c(5, 8)) %>%
select(-junk) %>%
unite(a)
дает:
a
1 UHI78_RH2V
2 TYR32_ASJKDG
3 DHA92_SYFN34