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"
答案 0 :(得分:12)
关注post about Auto-completion in Notepad++您可以更改本地设置:
Sys.setlocale(, "C")
sort(tv)
# [1] "A" "B" "a" "ab"
EDIT。我阅读了Sys.setlocale
的帮助页面,似乎更改LC_COLLATE
就足够了:Sys.setlocale("LC_COLLATE", "C")
要临时更改分页以进行排序,您可以使用withr
包:
withr::with_collate("C", sort(tv))
或使用stringr
包(如@dracodoc评论中所示):
stringr::str_sort(tv, locale="C")
我认为这是最好的方法。