有没有办法%like%
使datatable
包裹中的操作员不区分大小写?因此,例如'hello' %like% 'HELlo'
将匹配。
通过不依赖于data.table
:
`%like%` <- function (x, pattern) {
stringi::stri_detect_regex(x, pattern, case_insensitive=TRUE)
}
data.table
将其定义为:
function (vector, pattern)
{
if (is.factor(vector)) {
as.integer(vector) %in% grep(pattern, levels(vector))
}
else {
grepl(pattern, vector)
}
}
factor
如果愿意,您可以解决此问题,但这不是一个非常复杂的功能。里面没有“魔术”。
我使用stringi
它(对于我的工作)远比内置字符串操作更健壮,并且在引擎盖下提供了更多功能。
您也可以将其定义为:
`%like%` <- function (x, pattern) {
grepl(pattern, x, ignore.case=TRUE)
}
(再次,忽略factor
大小写),如果您愿意。您会丢失矢量化的操作pattern
。
使名称%likeic%
(比如,忽略大小写),如果你不想壁球定义data.table
的%like%
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句