df$X <- gsub("[+]", "(+)", df$X)
df$X<- gsub("[-]", "(-)", df$X)
这两个命令替换了我的列中的所有+和 - 和(+)( - ),即使我只是想要在启动单元格时进行更改。
答案 0 :(得分:6)
你可以尝试
df$X <- gsub('^\\+', '(+)',df$X)
和
gsub('^\\-', '(-)',df$X)
另一种选择是使用gsubfn
一步完成此操作
library(gsubfn)
gsubfn("^[+-]", list(`+` = "(+)", `-` = "(-)"), df$X)
#[1] "(+)234x" "ab+234" "(+)cf+43" "(-)234+49" "abc-23"
#[6] "(-)23ab-34"
df <- structure(list(X = c("+234x", "ab+234", "+cf+43", "-234+49",
"abc-23", "-23ab-34")), .Names = "X", row.names = c(NA, -6L),
class = "data.frame")
答案 1 :(得分:2)
这*有效:
df$X2 <- ifelse(regexpr("\\+", df$X)==1 | regexpr("\\-", df$X)==1, paste0("(",
substr(df$X, 1, 1), ")", substr(df$X, 2, nchar(df$X))), df$X)
*之前发布故障版本的道歉。