我的列中的值是字母和数字的组合,如下所示:abc1237pqr, 413ogty, ptw569q, qrt
。
如何在最后一位数字出现后删除所有字符,使其变为:abc1237, 413, ptw569, qrt
?也就是说,开头的字母会保留,但不会出现在数字后面的字母。
答案 0 :(得分:1)
我们可以使用sub
来捕获一个数字((\\d)
),后跟一个或多个不是数字([^0-9]+
)的字符,直到字符串结尾({{1} }}并替换为捕获组
$
)
\\1
sub("(\\d)[^0-9]+$", "\\1", df1$v1)
#[1] "abc1237" "413" "ptw569" "qrt"