You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中如何删除数据框字符串列的“-州缩写”后缀保留城市名

R实现删除固定后缀的简便方法

你只需要匹配-开头到字符串末尾的所有内容批量替换即可,不需要逐个定义州缩写匹配规则。

方法1:基础R实现

直接用gsub函数写通用正则匹配:

# 匹配所有以 " - " 开头的结尾部分,替换为空
df$var1 <- gsub(pattern = " -.*", replacement = "", x = df$var1)

正则解释:.*代表匹配任意数量的任意字符,所以" -.*"会匹配从第一个-出现的位置直到字符串末尾的所有内容,不管后面是哪个州的缩写都能一次性删除。
如果想要避免城市名中偶然出现-导致误删,可以用更严格的正则匹配州缩写的格式:pattern = " - [A-Z]{2}$",其中[A-Z]{2}匹配两个大写字母,$匹配字符串末尾,只有符合「空格-空格+两位大写字母结尾」的规则才会被删除,准确率更高。

方法2:tidyverse生态实现

如果你常用tidyverse,可以用stringr::str_remove函数,写法更简洁:

library(dplyr)
library(stringr)

df <- df %>%
  mutate(var1 = str_remove(var1, " -.*"))

两种方法处理5000行数据都是毫秒级完成,完全没有性能压力。

内容的提问来源于stack exchange,提问作者Luiz Henrique Varzinczak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 08:45:03