我的列中的值是字母和数字的组合,如下所示: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)
关于删除最后一个数字之后的所有字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48318437/