我有一个包含以下列的数据框
city <- c("Sydney NSW", "Newcastle NSW", "Liverpool NSW", "Broken Hill NSW")
我想维护之前的所有内容NSW(包括空间)。可以在 R 中使用什么正则表达式?
我有一个包含以下列的数据框
city <- c("Sydney NSW", "Newcastle NSW", "Liverpool NSW", "Broken Hill NSW")
我想维护之前的所有内容NSW(包括空间)。可以在 R 中使用什么正则表达式?
使用strsplit().
如果要删除两个单词之间的空格(以及“NSW”):
city_clean <- unlist(c(strsplit(city, " NSW")))
输出:[1] "Sydney" "Newcastle" "Liverpool" "Broken Hill"
我不清楚你是否想保留这个空间。如果要保留城市名称后的尾随空格
city_clean <- unlist(c(strsplit(city, "NSW")))
输出:[1] "Sydney " "Newcastle " "Liverpool " "Broken Hill "
如果您更喜欢使用正则表达式,这是另一种解决方案:
city_clean <- gsub(" NSW", "", city)
输出:[1] "Sydney" "Newcastle" "Liverpool" "Broken Hill"
在基础 R 中,您可以使用
gsub("NSW$", "", city)
该函数是向量化的,并在向量的所有元素中执行替换。
使用 tidyverse 包stringr,您可以使用矢量化函数str_replace:
library(stringr)
str_replace(city, "NSW$", "")
在我看来,这里的论点顺序更自然。
stringr取决于stringi。如果你必须先安装这些包,这将需要一段时间,因为 R 在安装过程中会编译很多辅助 C/C++ 代码。