验证 - 断言以下内容:
-
formula
公式的左侧和右侧不得有重复项。
检查 - 返回以下内容:
-
ok
逻辑。检查通过吗? -
duplicates
字符向量。重复的条款。
用法
validate_no_formula_duplication(formula, original = FALSE)
check_no_formula_duplication(formula, original = FALSE)
参数
- formula
-
要检查的公式。
- original
-
一个合乎逻辑的。是检查原来的名字,还是使用处理后的名字?如果
FALSE
、y ~ log(y)
是允许的,因为名称是"y"
和"log(y)"
,如果TRUE
、y ~ log(y)
是不允许的,因为原始名称都是"y"
。
值
validate_no_formula_duplication()
以不可见方式返回formula
。
check_no_formula_duplication()
返回两个组件的命名列表: ok
和 duplicates
。
验证
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 hardhat validate_prediction_size 确保预测具有正确的行数
- R hardhat validate_column_names 确保数据包含所需的列名
- R hardhat validate_outcomes_are_univariate 确保结果是单变量
- R hardhat validate_outcomes_are_numeric 确保结果都是数字
- R hardhat validate_outcomes_are_binary 确保结果具有二元因子
- R hardhat validate_outcomes_are_factors 确保结果只有因子列
- R hardhat validate_predictors_are_numeric 确保预测变量都是数字
- R hardhat default_recipe_blueprint 默认配方蓝图
- R hardhat is_blueprint x 是预处理蓝图吗?
- R hardhat default_formula_blueprint 默认公式蓝图
- R hardhat update_blueprint 更新预处理蓝图
- R hardhat weighted_table 加权表
- R hardhat get_levels 从 DataFrame 中提取因子水平
- R hardhat add_intercept_column 向数据添加截距列
- R hardhat is_frequency_weights x 是频率权重向量吗?
- R hardhat model_offset 提取模型偏移
- R hardhat standardize 标准化结果
- R hardhat model_matrix 构建设计矩阵
- R hardhat is_importance_weights x 是重要性权重向量吗?
- R hardhat run-mold 根据蓝图 Mold()
- R hardhat get_data_classes 从 DataFrame 或矩阵中提取数据类
- R hardhat fct_encode_one_hot 将一个因子编码为 one-hot 指标矩阵
- R hardhat new_frequency_weights 构建频率权重向量
- R hardhat default_xy_blueprint 默认 XY 蓝图
- R hardhat shrink 仅对所需列进行子集化
注:本文由纯净天空筛选整理自Davis Vaughan等大神的英文原创作品 Ensure no duplicate terms appear in formula。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。