當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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