Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 排序字符串时不要忽略大小写_Sorting_R_Vector_Character - Fatal编程技术网

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

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

在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\u-COLLATE”,“C”)

要临时更改排序的collate,您可以使用以下软件包:

或使用软件包(如@dracodoc comment):


我认为这是最好的方法。

我遇到了完全相反的问题,即我的默认LC\U COLLATE是“C”,我想使用不区分大小写的排序。我没有找到比尝试一些已安装的区域设置和用Sys.setlocale(“LC_COLLATE”、“eu_ES.iso88591”)替换函数第3行更好的方法。我肯定这是错的。正确的方法是什么?更好的方法是使用
stringr::str_sort
,您可以指定区域设置,这样它将具有一致的结果。@FabioMarroni
stringr::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")