Linux帮助信息括号,正则表达式 – 在Linux上使用方括号在文本...

这与您的计算机认为应该执行整理的“区域设置”有关.所以我有

names

Sys.getlocale(category="LC_COLLATE")

## [1] "en_US.UTF-8"

sort(names)

## [1] "acc1" "[cash]" "lender1"

Sys.setlocale(category="LC_COLLATE", locale="C")

## [1] "C"

sort(names)

## [1] "[cash]" "acc1" "lender1"

但是特定的语言环境(以及以交互方式设置它的能力)是特定于系统的. ?Sys.setlocale有附加信息,包括指向RShowDoc(“R-admin”)的指针,R安装和管理手册(第7节).

例如@bhamu包括在下面的评论中,我有

> Sys.setlocale(category="LC_COLLATE", locale="en_US.UTF-8")

[1] "en_US.UTF_8"

> sort(sectors)

[1] "[Cash]" "Consumer Discretionary" "Consumer Staples"

[4] "[Unassigned]"

在en_US-UTF.8中,'[‘字符被视为静默 – 在排序期间被忽略,因此Cash之前排序,Unassigned排序在Consumer之后.虽然为

> Sys.setlocale(category="LC_COLLATE", locale="C")

[1] "C"

> sort(sectors)

[1] "Consumer Discretionary" "Consumer Staples" "[Cash]"

[4] "[Unassigned]"

事情遵循传统的ASCII table和'[‘在大写之后和小写字母字符之前的排序.从语言学的角度来看,不同语言环境的规则是复杂而有趣的(我怀疑在所有语言环境中可以依赖于A-Z之前的0排序,如下面提到的@ bhamu的解决方案所暗示的那样);对于许多计算任务,人们真的想要locale =“C”.

我不确定以下是完全跨平台兼容的(例如,早期版本的?Sys.setlocale()对于这是否适用于Windows不太乐观),但是确保标准排序顺序的方法可能是

mysort

olocale

on.exit(Sys.setlocale("LC_COLLATE", olocale))

sort(x)

}

此外,在扇区的情况下,看起来这些实际上是因素(表示有限数量级别之一的字符串),在这种情况下使用lvls进行有序表示

sectors

sort(sectors)

以所需顺序返回扇区.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值