在R中资本化(有例外)
除了添加边界外,如何利用R上的数据 例如: 以“纽约州纽约市”的形式给出城市和州的列表 它需要改为:“纽约,纽约” str_to_title函数将其更改为“纽约,纽约” 模式: 华盛顿特区 马萨诸塞州阿默斯特 新罕布什尔州汉诺威 北卡罗来纳州戴维森 布伦瑞克,我 格林维尔,SC 波特兰,或 路易斯维尔,肯塔基州在R中资本化(有例外),r,R,除了添加边界外,如何利用R上的数据 例如: 以“纽约州纽约市”的形式给出城市和州的列表 它需要改为:“纽约,纽约” str_to_title函数将其更改为“纽约,纽约” 模式: 华盛顿特区 马萨诸塞州阿默斯特 新罕布什尔州汉诺威 北卡罗来纳州戴维森 布伦瑞克,我 格林维尔,SC 波特兰,或 路易斯维尔,肯塔基州 它们的格式都应该是:Amherst、MA或Brunswick、ME我们可以使用一个负正则表达式查找来匹配不在、和空格后面的大写字母,作为一个组捕获((…)),在替换中指定捕获组的反向引用
它们的格式都应该是:Amherst、MA或Brunswick、ME我们可以使用一个负正则表达式查找来匹配不在
、
和空格
后面的大写字母,作为一个组捕获((…)
),在替换中指定捕获组的反向引用(\\1
,\\2
)同时将第二组转换为较低(\\L
)
gsub(“(?我把它们添加到了原始帖子中。你能检查一下我下面的解决方案吗。谢谢。谢谢。你能解释一下gsub命令以及相关的参数吗?我不完全确定为什么这样做,但它确实起作用了。
gsub("(?<!, )([A-Z])([A-Z]+)\\b", "\\1\\L\\2", str1, perl = TRUE)
#[1] "New York, NY" "Washington, DC" "Amherst, MA" "Hanover, NH"
#[5] "Davidson, NC" "Brunswick, ME"
#[7] "Greenville, SC" "Portland, OR" "Louisville, KY"
str1 <- c("NEW YORK, NY", "WASHINGTON, DC", "AMHERST, MA", "HANOVER, NH",
"DAVIDSON, NC", "BRUNSWICK, ME", "GREENVILLE, SC", "PORTLAND, OR",
"LOUISVILLE, KY")