Как разделить строку в 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 это длина, которую вы хотите отбросить.

Другие вопросы по тегам