sorting - 字符串排序时不要忽略大小写

标签 sorting r vector character

R中是否有内置的功能可以对字符向量进行排序(考虑大小写)? sortorder忽略大小写:

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"

最佳答案

post about Auto-completion in Notepad++之后,您可以更改本地设置:

Sys.setlocale(, "C")
sort(tv)
# [1] "A"  "B"  "a"  "ab"

编辑。我将帮助页面阅读为Sys.setlocale,看来更改LC_COLLATE就足够了:Sys.setlocale("LC_COLLATE", "C")
要临时更改归类以进行排序,您可以使用 withr 包:
withr::with_collate("C", sort(tv))

或使用 stringr 软件包(如@dracodoc注释中所示):
stringr::str_sort(tv, locale="C")

我认为这是最好的方法。

关于sorting - 字符串排序时不要忽略大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4245196/

相关文章:

java - 如何从输入文件中查找平均值、中位数、众数和极差?

python - 对整数先正后负排序

r - 在 R 中的 ggplot2 中操作数据点的值

jsp - 矢量: References to generic type Vector<E> should be parameterized

c++ - 如何在一个 vector 中存储具有不同数据类型的对象

jquery - DataTables 对字符串而不是数字进行排序

java - 如何按参数对数组列表进行排序?

r - 系统地用关联的 R 向量的第一个元素替换变量名的一部分

r - 可视化和旋转矩阵

c++ - vector 返回空c++