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


R dials new-param 用於創建新參數對象的工具


這些函數用於構造新的參數對象。通常,這些函數是從更高級別的參數生成函數調用的,例如 mtry()

用法

new_quant_param(
  type = c("double", "integer"),
  range = NULL,
  inclusive = NULL,
  default = deprecated(),
  trans = NULL,
  values = NULL,
  label = NULL,
  finalize = NULL,
  ...,
  call = caller_env()
)

new_qual_param(
  type = c("character", "logical"),
  values,
  default = deprecated(),
  label = NULL,
  finalize = NULL,
  ...,
  call = caller_env()
)

參數

type

單個字符值。對於定量參數,有效選擇是 "double""integer" ,而對於定性參數,有效選擇是 "character""logical"

range

分別具有最小或最大可能值的二元素向量。如果在定義參數時無法設置這些,則可以使用unknown()函數。如果指定了轉換,這些值應采用轉換後的單位。如果提供了 values,並且 rangeNULL ,則 range 將設置為 range(values)

inclusive

一個二元素邏輯向量,用於確定範圍值應包含還是排除。如果提供了 values,並且 inclusiveNULL ,則 inclusive 將設置為 c(TRUE, TRUE)

default

不再使用。如果提供了一個值,它將被忽略並拋出警告。

trans

A trans對象從包,例如scales::log10_trans()或者scales::reciprocal_trans()。創建自定義轉換scales::trans_new().

values

type"character""logical" 時需要的可能值向量,否則為可選。對於定量參數,這可以用作 rangeinclusive 的替代方案。如果設置,這些將由 value_seq()value_sample() 使用。

label

可用於打印和繪圖的可選命名字符串。該名稱應與對象名稱匹配(例如 "mtry""neighbors" 等)

finalize

可用於設置參數的 data-specific 值(例如 range )的函數。

...

這些點用於將來的擴展,並且必須為空。

call

調用傳遞到rlang::abort()

"param" 的對象,其主類為 "quant_param""qual_param" 。對象的 range 元素始終轉換為包含元素 "lower""upper" 的列表。

例子

# Create a function that generates a quantitative parameter
# corresponding to the number of subgroups.
num_subgroups <- function(range = c(1L, 20L), trans = NULL) {
  new_quant_param(
    type = "integer",
    range = range,
    inclusive = c(TRUE, TRUE),
    trans = trans,
    label = c(num_subgroups = "# Subgroups"),
    finalize = NULL
  )
}

num_subgroups()
#> # Subgroups (quantitative)
#> Range: [1, 20]

num_subgroups(range = c(3L, 5L))
#> # Subgroups (quantitative)
#> Range: [3, 5]

# Custom parameters instantly have access
# to sequence generating functions
value_seq(num_subgroups(), 5)
#> [1]  1  5 10 15 20

源代碼:R/constructors.R

相關用法


注:本文由純淨天空篩選整理自Max Kuhn等大神的英文原創作品 Tools for creating new parameter objects。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。