Sorting 排序字符串时不要忽略大小写
在R中是否有一个内置功能,可以根据大小写对字符向量进行排序<代码>排序和Sorting 排序字符串时不要忽略大小写,sorting,r,vector,character,Sorting,R,Vector,Character,在R中是否有一个内置功能,可以根据大小写对字符向量进行排序排序和顺序忽略以下情况: tv <- c("a", "A", "ab", "B") sort(tv) ## [1] "a" "A" "ab" "B" tv接下来,您可以更改本地设置: Sys.setlocale(, "C") sort(tv) # [1] "A" "B" "a" "ab" 编辑。我阅读了Sys.setlocale的帮助页面,似乎更改LC\u-COLLATE就足够了:Sys.setlocale(“LC
顺序
忽略以下情况:
tv <- c("a", "A", "ab", "B")
sort(tv)
## [1] "a" "A" "ab" "B"
tv接下来,您可以更改本地设置:
Sys.setlocale(, "C")
sort(tv)
# [1] "A" "B" "a" "ab"
编辑。我阅读了Sys.setlocale
的帮助页面,似乎更改LC\u-COLLATE
就足够了:Sys.setlocale(“LC\u-COLLATE”,“C”)
要临时更改排序的collate,您可以使用以下软件包:
或使用软件包(如@dracodoc comment):
我认为这是最好的方法。我遇到了完全相反的问题,即我的默认LC\U COLLATE是“C”,我想使用不区分大小写的排序。我没有找到比尝试一些已安装的区域设置和用Sys.setlocale(“LC_COLLATE”、“eu_ES.iso88591”)替换函数第3行更好的方法。我肯定这是错的。正确的方法是什么?更好的方法是使用stringr::str_sort
,您可以指定区域设置,这样它将具有一致的结果。@FabioMarronistringr::str_sort
忽略当前设置,这样它将不区分大小写排序(stringr::str_sort(tv)
)。
Sys.setlocale(, "C")
sort(tv)
# [1] "A" "B" "a" "ab"
withr::with_collate("C", sort(tv))
stringr::str_sort(tv, locale="C")