我有一列issueID
Tt有一些值
101, 102, 103, IS-104, IS-105, IS-106,
如何使用R代码删除IS-104,IS-105,IS106之前的所有“ IS-”;还是找到一种在101、102、103前面添加“ IS-”的方法?
答案 0 :(得分:2)
使用sub
,将数字模式(\\d+
)at the start (
^ ) of the string, capture (
(...)`作为一个组进行匹配,并在替换项中添加捕获组的反向引用之前的字符串“ IS-”
sub("^(\\d+)", "IS-\\1", df1$issueID)
#[1] "IS-101" "IS-102" "IS-103" "IS-104" "IS-105" "IS-106"
另一个选择是使用ifelse
创建一个grepl
条件,然后创建paste
字符串开头没有'IS'的元素
with(df1, ifelse(grepl("^IS", issueID), issueID, paste0("ID-", issueID)))
df1 <- data.frame(issueID = c("101", "102", "103", "IS-104", "IS-105",
"IS-106"), stringsAsFactors = FALSE)