当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R hardhat validate_no_formula_duplication 确保公式中不出现重复项


验证 - 断言以下内容:

  • formula 公式的左侧和右侧不得有重复项。

检查 - 返回以下内容:

  • ok 逻辑。检查通过吗?

  • duplicates 字符向量。重复的条款。

用法

validate_no_formula_duplication(formula, original = FALSE)

check_no_formula_duplication(formula, original = FALSE)

参数

formula

要检查的公式。

original

一个合乎逻辑的。是检查原来的名字,还是使用处理后的名字?如果 FALSEy ~ log(y) 是允许的,因为名称是 "y""log(y)" ,如果 TRUEy ~ log(y) 是不允许的,因为原始名称都是 "y"

validate_no_formula_duplication() 以不可见方式返回formula

check_no_formula_duplication() 返回两个组件的命名列表: okduplicates

验证

Hardhat 提供两个级别的验证函数。

  • check_*() :检查条件,并返回列表。该列表始终包含至少一个元素 ok ,这是一个指定检查是否通过的逻辑。每个检查还在返回的列表中检查特定元素,可用于构造有意义的错误消息。

  • validate_*():检查条件,如果不通过则出错。这些函数调用相应的检查函数,然后提供默认的错误消息。如果您作为开发人员想要不同的错误消息,请自行调用 check_*() 函数,并提供您自己的验证函数。

例子

# All good
check_no_formula_duplication(y ~ x)
#> $ok
#> [1] TRUE
#> 
#> $duplicates
#> character(0)
#> 

# Not good!
check_no_formula_duplication(y ~ y)
#> $ok
#> [1] FALSE
#> 
#> $duplicates
#> [1] "y"
#> 

# This is generally okay
check_no_formula_duplication(y ~ log(y))
#> $ok
#> [1] TRUE
#> 
#> $duplicates
#> character(0)
#> 

# But you can be more strict
check_no_formula_duplication(y ~ log(y), original = TRUE)
#> $ok
#> [1] FALSE
#> 
#> $duplicates
#> [1] "y"
#> 

# This would throw an error
try(validate_no_formula_duplication(log(y) ~ log(y)))
#> Error in validate_no_formula_duplication(log(y) ~ log(y)) : 
#>   The following terms are duplicated on the left and right hand side of the `formula`: 'log(y)'.
源代码:R/validation.R

相关用法


注:本文由纯净天空筛选整理自Davis Vaughan等大神的英文原创作品 Ensure no duplicate terms appear in formula。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。