我有带数字的字符串,如果字符串中有5个以上的数字,我想删除它们.例如,将"string 58474847"修改为"string".但保留"string 55"不变.数字也可以位于字符串的中间.

推荐答案

"{6,}"表示"超过5":

x <- c("string 58474847", "string 55")

gsub("[0-9]{6,}", "", x)
# "string "   "string 55"

如果您还想删除示例中的前导空格:

gsub("\\s*[0-9]{6,}", "", x)
# "string"   "string 55"

正如@ChrisRuehlemann指出的那样,这将删除每个字符串中all个6位以上的数字.如果只想删除每个字符串的第一个运行,请使用sub().

x2 <- "string 1234567 another string 9876543"
gsub("\\s*[0-9]{5,}", "", x2)
# "string another string"

sub("\\s*[0-9]{5,}", "", x2)
# "string another string 9876543"

R相关问答推荐

如何在ggplot 2线性图的每个方面显示每个组的误差条?

将复杂的组合列表转换为数据框架

在不安装软件包的情况下测试更新

R Sapply函数产生的值似乎与for循环方法略有不同

bslib::card_header中的shine::downloadButton,图标而不是文本

如何在ggplot中标记qqplot上的点?

标识R中多个列中缺少的唯一值

如何读取CSV的特定列时,给定标题作为向量

如何将SAS数据集的列名和列标签同时包含在r中GT表的表首?

如何在R中通过多个变量创建交叉表?

根据纬度和距离连接两个数据集

提高圣彼得堡模拟的速度

创建在文本字符串中发现两个不同关键字的实例的数据框

如何根据未知数的多列排除重复行

生存时间序列的逻辑检验

使用函数从R中的列中删除标高

我怎么才能把一盘棋变成一盘棋呢?

带有Bootswatch Cerulean主题的shiny 仪表板中的浏览&按钮可见性问题

通过不完全重叠的多个柱连接

使用另一列中的增长率外推R(使用dplyr)