大写基本方向,R 中的其他所有内容都使用标题大写
Upper case cardinal directions, use title case for everything else in R
我有一长串全部大写的地址。我想转换为标题大小写,但保留主要方向的大写字母,例如东北、西北、东南、西南。
address <- c("14615 SE CREEKSIDE DRIVE")
stringr::str_to_title(address)
# this returns
14615 Se Creekside Drive
# desired result
14615 SE Creekside Drive
您可以先转换为首字母大写,然后再将主要方向转换回大写。例如:
address = stringr::str_to_title(address)
address = gsub("( [NS])([ew] )", "\1\U\2" , address, perl=TRUE)
尝试:
> gsub("\b([A-Z])(\w{2,})", "\1\L\2" , "14615 SE CREEKSIDE DRIVE", perl=true)
[1] "14615 SE Creekside Drive"
正则表达式细分:
\b
匹配单词边界
([A-Z])
匹配一个大写字母
(\w{2,})
匹配两个以上的单词字符
使用 str_replace
您可以转换回基本方向。包括空格以避免红衣主教出现在名字中,但如果它们可能被空格以外的东西包围,你将不得不修改它。
library(stringr)
addresses <- c("14615 SE CREEKSIDE DRIVE", "14615 NW CREEKSIDE DRIVE", "14615 SE SEASIDE DRIVE", "14615 SE TANWELL DRIVE")
addresses %>%
str_to_title %>%
str_replace(" (N|S)(e) ", " \1E ") %>%
str_replace(" (N|S)(w) ", " \1W ")
#> [1] "14615 SE Creekside Drive" "14615 NW Creekside Drive"
#> [3] "14615 SE Seaside Drive" "14615 SE Tanwell Drive"
由 reprex package (v0.2.0) 创建于 2018-06-26。
我有一长串全部大写的地址。我想转换为标题大小写,但保留主要方向的大写字母,例如东北、西北、东南、西南。
address <- c("14615 SE CREEKSIDE DRIVE")
stringr::str_to_title(address)
# this returns
14615 Se Creekside Drive
# desired result
14615 SE Creekside Drive
您可以先转换为首字母大写,然后再将主要方向转换回大写。例如:
address = stringr::str_to_title(address)
address = gsub("( [NS])([ew] )", "\1\U\2" , address, perl=TRUE)
尝试:
> gsub("\b([A-Z])(\w{2,})", "\1\L\2" , "14615 SE CREEKSIDE DRIVE", perl=true)
[1] "14615 SE Creekside Drive"
正则表达式细分:
\b
匹配单词边界([A-Z])
匹配一个大写字母(\w{2,})
匹配两个以上的单词字符
使用 str_replace
您可以转换回基本方向。包括空格以避免红衣主教出现在名字中,但如果它们可能被空格以外的东西包围,你将不得不修改它。
library(stringr)
addresses <- c("14615 SE CREEKSIDE DRIVE", "14615 NW CREEKSIDE DRIVE", "14615 SE SEASIDE DRIVE", "14615 SE TANWELL DRIVE")
addresses %>%
str_to_title %>%
str_replace(" (N|S)(e) ", " \1E ") %>%
str_replace(" (N|S)(w) ", " \1W ")
#> [1] "14615 SE Creekside Drive" "14615 NW Creekside Drive"
#> [3] "14615 SE Seaside Drive" "14615 SE Tanwell Drive"
由 reprex package (v0.2.0) 创建于 2018-06-26。