在linux上根据Windows-1252进行R字符排序
问题: 我需要在我的linux(ubuntu)机器上对字符串向量进行排序,排序方式与在另一台windows机器上使用windows-1252 locale collate进行排序的方式相同 在windows上,它的工作原理如下:在linux上根据Windows-1252进行R字符排序,r,sorting,locale,collate,R,Sorting,Locale,Collate,问题: 我需要在我的linux(ubuntu)机器上对字符串向量进行排序,排序方式与在另一台windows机器上使用windows-1252 locale collate进行排序的方式相同 在windows上,它的工作原理如下: >顺序(c(“A”、“A”、“0”、“_”、“/”) [1] 5 4 3 2 1 在ubuntu 20.4上,它的工作原理如下: >顺序(c(“A”、“A”、“0”、“_”、“/”) [1] 4 5 3 2 1 更多信息: windows计算机上的区域设置如下所示:
>顺序(c(“A”、“A”、“0”、“_”、“/”)
[1] 5 4 3 2 1
在ubuntu 20.4上,它的工作原理如下:
>顺序(c(“A”、“A”、“0”、“_”、“/”)
[1] 4 5 3 2 1
更多信息:
windows计算机上的区域设置如下所示:
>Sys.getlocale()
[1] “LC\U COLLATE=英国\美国。1252;LC\U CTYPE=英国\美国。1252;LC\货币=英国\美国。1252;LC\数字=C;LC\时间=英国\美国。1252”
我已经尝试在linux机器上将locale设置为en_US.CP1252,但排序没有改变:
>Sys.getlocale()
[1] “LC_CTYPE=en_US.CP1252;LC_NUMERIC=C;LC_TIME=en_.CP1252;LC_COLLATE=en_.CP1252;LC_MONETARY=en_.CP1252;LC_MESSAGES=en_.CP1252;LC_PAPER=en_.CP1252;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_.CP1252;LC_IDENTIFICATION=C”
我还尝试将所需的排序规则传递给str_order函数,但没有成功:
> str_order(c("A", "a", "0", "_", "/"), locale = "en")
[1] 4 5 3 2 1
排序时是否有强制排序规则的本机方法?如果没有,我如何编写自己的分类器/比较器?
谢谢大家!