驗證 - 斷言以下內容:
-
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。