Есть ли встроенная функциональность в R для сортировки символьных векторов с учетом случая? sort
и order
игнорировать случай:Не игнорировать регистр при сортировке символьных строк
tv <- c("a", "A", "ab", "B")
sort(tv)
## [1] "a" "A" "ab" "B"
Это мое решение до сих пор:
CAPS <- grep("^[A-Z]", tv)
c(sort(tv[CAPS]), sort(tv[-CAPS]))
## [1] "A" "B" "a" "ab"
У меня была точно противоположная проблема, то есть мой default LC_COLLATE был «C», и я хотел использовать регистр, нечувствительный к регистру. Я не нашел ничего лучше, чем попробовать некоторые установленные локали, и заменил 3-ей строку функции на Sys.setlocale («LC_COLLATE», «eu_ES.iso88591»). Я уверен, что это неправильно. Каков правильный способ сделать это? –
Лучшим методом является использование 'stringr :: str_sort', и вы можете назначить локаль, чтобы она имела согласованный результат. – dracodoc