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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。