Упорядочение значений символов при сохранении порядка номеров
У меня есть символьный вектор, подобный следующему:
char <- c("C.1", "C.3", "C.10", "A.5", "D.4", "A.50", "A.49")
Я хочу отсортировать их в алфавитном порядке, но если я делаю
char[order(char)]
я получил
[1] "A.49" "A.5" "A.50" "C.1" "C.10" "C.3" "D.4"
Тем не менее, желаемый результат A.5, A.49, A.50, C.1, C.3, C.10, D.4
как я хотел бы сохранить порядок самих фактических чисел.
Как я могу изменить порядок char
как это?
1 ответ
Я уверен, что есть много способов сделать это. Вот один пример использования stringr
, Я извлекаю письмо и передаю его в качестве первого аргумента order
затем я извлекаю цифру и использую ее в качестве второго аргумента order
,
library(stringr)
char[order(str_extract(char,"\\w"), strtoi(str_extract(char,"\\d+")))]
# [1] "A.5" "A.49" "A.50" "C.1" "C.3" "C.10" "D.4"