如果单元格包含某个字符,则替换r中的整个单元格

Dan*_*nny 0 replace r gsub

我在数据框中有几个单元格,后面跟一个星号.我想用*和NA替换单元格中的数据.这是样本数据

a<-c(1.23,"4.2*", 5,6,"8*")
b<-c(0.01,0.5,"3.687*",9,10)
c<-data.frame(a,b)
c
Run Code Online (Sandbox Code Playgroud)

我试过c [c =="*"] < - NA,但只替换只包含*的单元格

Fra*_*ank 6

尝试强制数字:

data.frame( a = as.numeric(a), b = as.numeric(b) )

     a     b
1 1.23  0.01
2   NA  0.50
3 5.00    NA
4 6.00  9.00
5   NA 10.00
Run Code Online (Sandbox Code Playgroud)

任何无效的数字都将成为NA.OP首选方法的缺点是,当您看起来很可能使用数字时,最终会得到一个充满因子或字符的data.frame.

  • 尝试`is.na(c)< - sapply(c,grepl,pattern ="\\*")` (2认同)