[英]How can I check in R if a function is in a list of functions?
algos <- c(bnlearn::hc, bnlearn::tabu)
bnlearn::hc %in% algos
匹配错误(x,表,nomatch = 0L):“匹配”需要向量参数
我已经尝试了上面的错误,但出现了以下错误。 我该如何解决这个问题?
您可以使用identical
的函数来检查函数是否相等。
要检查列表成员资格,您需要手动将其应用于列表:
any(vapply(algos, identical, logical(1L), bnlearn::hc))
您当然可以将其包装到函数/运算符中:
`%fin%` = function (fun, funs) {
any(vapply(funs, identical, logical(1L), match.fun(fun)))
}
bnlearn::hc %fin% algos
如果您首先将列表构建为命名列表:
algos <- c("bnlearn::hc" = bnlearn::hc, "bnlearn::tabu" = bnlearn::tabu)
你可以简单地做:
"bnlearn::hc" %in% names(algos)
TRUE
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.