人眼可以看到没有值x满足条件
x<1 & x>2
但是我怎样才能让R看到这一点。我想在一个通过比较(比如说字符串)而不一定是数据的函数中使用它。假设我想编写一个函数来检查是否无论如何都能完成比较的组合,像这样
areTherePossibleValues <- function(someString){ someCode } areTherePossibleValues("x<1 & x>2") [1] FALSE
我的意思是可以通过解释作为比较符号的子字符串等来做到这一点,但是我觉得必须有一种更好的方法。实际上,R比较函数('<','>','='等)可能是答案,对吧?
另一个选择是使用库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