与NA元素的将死

时间:2017-04-17 16:22:52

标签: r assert

我想使用R中的checkmate包来确定字符向量中的所有元素(a)是NA还是(b)是否符合正则表达式模式。 (在这种特定情况下,元素可能只包含数字。)

以下调用返回“断言'x'失败:必须符合模式'^ \ d {2,3} $'”,即使any.missing参数设置为TRUE。有天然的吗?简洁的方式测试这个w /将军?如果使用正则表达式模式,any.missing参数是否基本上被忽略了?

x <- c("11", "22", "333", NA_character_)
pattern <- "^\\d{2,3}$"

checkmate::assert_character(x,  pattern=pattern, any.missing=TRUE)

作为参考,使用testit的类似表达式是

testit::assert(
  "Any existing elements must be missing or only digits",
  all(is.na(x) | grepl(pattern, x)
)

1 个答案:

答案 0 :(得分:0)

https://github.com/mllg/checkmate/issues/106之后,当提供正则表达式模式时,不再忽略any.missing参数。