给定输入向量(iv)
iv <- c(.10,.15,"hello","."," . ",". ")
Run Code Online (Sandbox Code Playgroud)
我正在使用:
out <- sub(regexp,NA,iv)
Run Code Online (Sandbox Code Playgroud)
我想要这样的输出向量:
.10,.15,"hello",NA,NA,NA
Run Code Online (Sandbox Code Playgroud)
但是,不知道如何形成正则表达式以获得我需要的东西.提前致谢.
gsub('^\\s*[.]\\s*$', 'NA',c(.10,.15,"hello","."," . ",". "))
[1] "0.1" "0.15" "hello" "NA" "NA" "NA"
Run Code Online (Sandbox Code Playgroud)
编辑将 ' NA' 替换为NA
gsub('^\\s*[.]\\s*$', NA,c(.10,.15,"hello","."," . ",". "))
[1] "0.1" "0.15" "hello" NA NA NA
Run Code Online (Sandbox Code Playgroud)
编辑使用stringr
library(stringr)
x <- c(.10,.15,"hello","."," . ",". ")
x[str_trim(x) == '.'] <- NA
x
[1] "0.1" "0.15" "hello" NA NA NA
Run Code Online (Sandbox Code Playgroud)