我有一个变量b
b
hit?
nit
bit
kit
fit
我想搜索字符串“?”在b中如果可用,我想用“无”替换它
我在下面试过
a<-regexpr("?",b,fixed = TRUE)
if (a >0) {
b = 'none'
}
答案 0 :(得分:2)
我们使用grep
来获取“b”中具有?
的元素的数字索引。然后将这些元素分配给'none'
i1 <- grep("[?]", df1$b)
由于?
是一个元字符,我们可以将它们放在方括号内或将其转义\\?
或使用fixed = TRUE
,即
i1 <- grep("?", df1$b, fixed=TRUE)
df1$b[i1] <- "none"
df1
# b
#1 none
#2 nit
#3 bit
#4 kit
#5 fit
如果我们使用data.table
,则可以在适当的地方完成
library(data.table)
setDT(df1)[grep("[?]", b), b := "none"]
df1 <- structure(list(b = c("hit?", "nit", "bit", "kit", "fit")),
.Names = "b", class = "data.frame", row.names = c(NA, -5L))
答案 1 :(得分:0)
你可以使用gsub:
df$b<-gsub("?", "", df$b)