假设我有一个两个单词的字符串,我想把它们都大写.
name <- c("zip code", "state", "final count")
Run Code Online (Sandbox Code Playgroud)
这个Hmisc包有一个capitalize大写第一个单词的函数,但我不确定如何将第二个单词大写.帮助页面capitalize并不表示它可以执行该任务.
library(Hmisc)
capitalize(name)
# [1] "Zip code" "State" "Final count"
Run Code Online (Sandbox Code Playgroud)
我想得到:
c("Zip Code", "State", "Final Count")
Run Code Online (Sandbox Code Playgroud)
三字串怎么样:
name2 <- c("I like pizza")
Run Code Online (Sandbox Code Playgroud) 是否还有其他版本可以为每个字符串设置首字母,而且对于flac perl也是FALSE?
name<-"hallo"
gsub("(^[[:alpha:]])", "\\U\\1", name, perl=TRUE)
Run Code Online (Sandbox Code Playgroud) 我正在做一些日常的捣蛋,突然发现看似微不足道的东西不起作用:
$ echo T | grep [A-Z]
Run Code Online (Sandbox Code Playgroud)
没有比赛.
为什么T不在AZ范围内?
我改变了正则表达式:
$ echo T | grep [A-Y]
Run Code Online (Sandbox Code Playgroud)
一场比赛!
哇!如何在AY内,但不在AZ内?
显然这是因为我的环境设置为爱沙尼亚语区域,其中Y位于字母表的末尾,但Z位于中间位置:ABCDEFGHIJKLMNOPQRSŠZŽTUVWÕÄÖÜXY
$ echo $LANG
et_EE.UTF-8
Run Code Online (Sandbox Code Playgroud)
这对我来说有点震惊.99%的时候我会用计算机代码,而不是爱沙尼亚文学.我一直在以错误的方式使用grep吗?我过去因此犯过什么样的错误?
在尝试了几件事后,我得出了以下解决方案:
$ echo T | LANG=C grep [A-Z]
Run Code Online (Sandbox Code Playgroud)
这是使grep语言环境独立的推荐方法吗?
更多......定义这样的别名是安全的:
$ alias grep="LANG=C grep"
Run Code Online (Sandbox Code Playgroud)
PS.我也想知道为什么字符范围[A-Z]首先依赖于语言环境,而且\w似乎不受语言环境的影响(尽管手册中说\w的相当于[[:alnum:]]- 但我发现后者依赖于语言环境而\w不是语境环境).