删除最后一个数字之后的所有字符
Remove all characters after the last number
我列中的值是字母和数字的组合,看起来像这样:abc1237pqr, 413ogty, ptw569q, qrt
。
如何删除最后一位出现后的所有字符,使其变为:abc1237, 413, ptw569, qrt
?也就是说,保留开头的字母,但不保留数字后面的字母。
我们可以使用sub
来捕获一个数字((\d)
),然后是一个或多个不是数字的字符([^0-9]+
),直到字符串结束($
) 并替换为捕获组
的反向引用 (\1
)
sub("(\d)[^0-9]+$", "\1", df1$v1)
#[1] "abc1237" "413" "ptw569" "qrt"
数据
df1 <- data.frame(v1 =c('abc1237pqr', '413ogty', 'ptw569q', 'qrt'), stringsAsFactors = FALSE)
我列中的值是字母和数字的组合,看起来像这样:abc1237pqr, 413ogty, ptw569q, qrt
。
如何删除最后一位出现后的所有字符,使其变为:abc1237, 413, ptw569, qrt
?也就是说,保留开头的字母,但不保留数字后面的字母。
我们可以使用sub
来捕获一个数字((\d)
),然后是一个或多个不是数字的字符([^0-9]+
),直到字符串结束($
) 并替换为捕获组
\1
)
sub("(\d)[^0-9]+$", "\1", df1$v1)
#[1] "abc1237" "413" "ptw569" "qrt"
数据
df1 <- data.frame(v1 =c('abc1237pqr', '413ogty', 'ptw569q', 'qrt'), stringsAsFactors = FALSE)