搜索并替换字符串

时间:2016-05-14 16:44:24

标签: r

我有一个变量b

  b      
 hit?
 nit
 bit
 kit
 fit

我想搜索字符串“?”在b中如果可用,我想用“无”替换它

我在下面试过

a<-regexpr("?",b,fixed = TRUE)
if (a >0) {
b = 'none'
}

2 个答案:

答案 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)