繁体   English   中英

我想grep / gsub为空,空格和连字符,并用R中的NA替换它

[英]I want to grep/gsub empty, space and a hyphen and replace that with NA in R

我有以下数据,

a <- c('a','1','',' ','-')

我想使用grep在上面的向量中搜索'','',' - ',我应该用什么模式进行搜索,我想在gsub中使用相同的模式。另外请解释一下这个模式的细节。你建议的模式。

您可以执行此操作以确定和替换您的查询

gsub("-|\\s+|^$",NA,a)

逻辑

gsub将用NA替换模式,模式表明如果“a”作为输入包含任何短划线( - ),或者应该替换多次出现一个或多个空格(\\ s +)或任何缺少的字符(^ $)。

  • \\\\s表示正则表达式中的空格,
  • +表示1个或更多字符,
  • ^表示开始,
  • $表示字符串的结尾,
  • 正则表达式中的管道符号是OR( | )。

所以, \\\\s+在这里意味着一个或多个空格, ^$在一起意味着开始和结束在一起,这意味着它们之间存在关联,可以按原样拍摄破折号。 这里所有这些特殊含义都是使用管道( | ), OR运算符组合而成。


您可以通过在R终端中键入help(regex)?regex来广泛查看详细含义

输出:

#> gsub("-|\\s+|^$",NA,a)
#[1] "a" "1" NA  NA  NA 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM