如何删除R列中也有单词的固定数字?
我有一个向量,它有一系列的数字和单词如何删除R列中也有单词的固定数字?,r,string,vector,transform,R,String,Vector,Transform,我有一个向量,它有一系列的数字和单词 df可能比@r2evans在评论中建议的解决方案更健壮/通用/安全 gsub( "(\\d{2,})\\d{2}$", "\\1", df) 它的作用是: 模式=“(^\\d{2,})\\d{2}$” ^匹配字符串的开头 \\d{2,}匹配至少两位数的任何子字符串(删除逗号,您只想匹配精确长度为4位数的字符串) (^\\d{2,})圆括号定义了从字符串开始的位置,以及作为一个组的最小两位数的以下重复 \\d{2}正好两位数字的重复 $匹配字符串的结尾
df可能比@r2evans在评论中建议的解决方案更健壮/通用/安全
gsub( "(\\d{2,})\\d{2}$", "\\1", df)
它的作用是:
模式=“(^\\d{2,})\\d{2}$”
^
匹配字符串的开头
\\d{2,}
匹配至少两位数的任何子字符串(删除逗号,您只想匹配精确长度为4位数的字符串)
(^\\d{2,})
圆括号定义了从字符串开始的位置,以及作为一个组的最小两位数的以下重复李>
\\d{2}
正好两位数字的重复
$
匹配字符串的结尾
简言之:它匹配任何仅存在一个数字的字符串,该字符串以至少两个数字开头,D以两个数字结尾(因此数字字符串的最小长度=4)
更换=“\\1”
- 用上述模式中的第一个定义组(
(^\\d{2,})
)替换整个匹配字符串
样本数据
df嗯,R中的向量不能包含数字和字符值的混合。它可能已经转换为所有字符。您上面提供的代码实际上不是有效的R代码(除非其他
和弃权
是其他地方定义的变量)。如果您提供了一个只为了让事情更清楚的示例,那就更好了。如果没有这个示例,您可能可以使用gsub(“[0-9]{2}$”,“”,df)
。请注意,这将把“56”
更改为“
”@r2evans是正确的。那个代码运行得很好。谢谢
df <- c(123, "Other", 5678, "Abstain", "b12345", 123456, "123aa345")
gsub("(^\\d{2,})\\d{2}$", "\\1", df)
#[1] "123" "Other" "56" "Abstain" "b12345" "1234" "123aa345"