我想使用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)
)