r - 在 R 中,使用 gsub 从字符串中删除子字符串模式
问题描述
我们的数据库中有一个字符串列,其中包含运动队的值。这些团队的名称有时会以团队排名为前缀,例如:(13) Miami (FL)
. 这里的 13 是迈阿密的排名,而 (FL) 表示这是佛罗里达州的迈阿密,而不是俄亥俄州的迈阿密 ( Miami (OH)
):
我们需要清理这个字符串,(13)
只删除和保留Miami (FL)
. 到目前为止,我们已经使用gsub
并尝试了以下内容:
> gsub("\\s*\\([^\\)]+\\)", "", "(13) Miami (FL)")
[1] " Miami"
这错误地删除了 (FL) 后缀,并且它也没有正确处理前面的空白。
编辑
这里有一些额外的学校名称,以显示我们正在使用的数据。请注意,并非每所学校都有 (##) 前缀。:
c("North Texas", "Southern Methodist", "Texas-El Paso",
"Brigham Young", "Winner", "(12) Miami (FL)", "Appalachian State",
"Arkansas State", "Army", "(1) Clemson",
"(14) Georgia Southern")
解决方案
您可以使用sub
删除括号中的数字,后跟空格。
sub("\\(\\d+\\)\\s", "", "(13) Miami (FL)")
#[1] "Miami (FL)"
正则表达式可以根据数据中的模式变得更严格。
推荐阅读
- c++ - 有人可以向我解释这个属于 LinkedList 程序的 C++ 代码吗?
- html - 将过渡添加到下拉菜单
- swift - 如何在 Xcode Swift 中同时滚动多个 textView
- java - “PKIX 路径构建失败:SunCertPathBuilderException:无法找到请求目标的有效证书路径”
- java - 如何设计我的 Spring 程序,以便当用户登录时我可以判断他们是教职员工、学生还是教职员工?
- jquery - 如果 variable.onclick 为真,则执行命令
- python - 如何使用 usb rs485 将寄存器 pymodbus 读取到 modbus 设备?
- ruby-on-rails - Heroku 部署错误;预编译资产失败(注意 devise.rb 中的行)
- javascript - 如何读取 JSON 文件,这是我的版本,但不好
- python - 如何在一行中初始化多个字典,并使用键列表作为 Python 中的输入参数来初始化它们?