当前位置:  开发笔记 > 编程语言 > 正文

如何预先确定互斥比较?

如何解决《如何预先确定互斥比较?》经验,为你挑选了1个好方法。

人眼可以看到没有值x满足条件

x<1 & x>2

但是我怎样才能让R看到这一点。我想在一个通过比较(比如说字符串)而不一定是数据的函数中使用它。假设我想编写一个函数来检查是否无论如何都能完成比较的组合,像这样

areTherePossibleValues <- function(someString){
    someCode
}

areTherePossibleValues("x<1 & x>2")
[1] FALSE

我的意思是可以通过解释作为比较符号的子字符串等来做到这一点,但是我觉得必须有一种更好的方法。实际上,R比较函数('<','>','='等)可能是答案,对吧?



1> 小智..:

另一个选择是使用库validatetools(免责声明,我是它的作者)。

library(validatetools)

rules <- validator( r1 = x < 1, r2 = x > 2)
is_infeasible(rules)
# [1] TRUE

make_feasible(rules)
# Dropping rule(s): "r1"
# Object of class 'validator' with 1 elements:
#  r2: x > 2
# Rules are evaluated using locally defined options

# create a set of rules that all must hold:
rules <- validator( x > 1, x < 2, x < 2.5)
is_infeasible(rules)
# [1] FALSE

remove_redundancy(rules)
# Object of class 'validator' with 2 elements:
#  V1: x > 1
#  V2: x < 2

rules <- validator( x >= 1, x < 1)
is_infeasible(rules)
# [1] TRUE

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有