Как разделить строку в r разделителем и отбросить два последних элемента?
У меня есть строка, разделенная _
и я хочу избавиться от последних двух элементов. Например, из A_B_C_D
я хочу вернуться A_B
, и из A_B_C_D_E
я хочу A_B_C
, я пытался str_split_fixed
от stringr
:
my_string <- "A_B_C_D"
x <- str_split_fixed(my_string,"_",3)
но возвращается "A" "B" "C_D"
вместо "A_B" "C" "D"
иначе я мог бы сделать head(x,-2)
получить A_B
Есть ли лучший способ, чем
paste(head(unlist(strsplit(my_string,"_")),-2),collapse="_")
1 ответ
Решение
Как насчет использования регулярных выражений:
sub('(_[A-Z]){2}$', '', 'A_B_C_D')
Где число 2
это длина, которую вы хотите отбросить.