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


R hardhat model_offset 提取模型偏移


model_offset() 从模型框架中提取数字偏移量。它受到 stats::model.offset() 的启发,但具有更好的错误消息并且稍微严格一些。

用法

model_offset(terms, data)

参数

terms

data 对应的 "terms" 对象,从对 model_frame() 的调用返回。

data

从调用 model_frame() 返回的数据帧。

表示偏移量的数值向量。

细节

如果标记为偏移量的列不是数字,则会抛出一条不错的错误消息,准确告诉您哪一列有问题。

stats::model.offset() 还允许将名为 "(offset)" 的列与 stats::offset() 标记的任何其他列一起视为偏移量。但是,stats::model.matrix() 不会将这些列识别为偏移量(因此它不会按应有的方式删除它们)。由于这种不一致,model_offset() 不会对名为 "(offset)" 的列进行特殊处理。

例子


x <- model.frame(Species ~ offset(Sepal.Width), iris)

model_offset(terms(x), x)
#>   [1] 3.5 3.0 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 3.7 3.4 3.0 3.0 4.0 4.4 3.9
#>  [18] 3.5 3.8 3.8 3.4 3.7 3.6 3.3 3.4 3.0 3.4 3.5 3.4 3.2 3.1 3.4 4.1 4.2
#>  [35] 3.1 3.2 3.5 3.6 3.0 3.4 3.5 2.3 3.2 3.5 3.8 3.0 3.8 3.2 3.7 3.3 3.2
#>  [52] 3.2 3.1 2.3 2.8 2.8 3.3 2.4 2.9 2.7 2.0 3.0 2.2 2.9 2.9 3.1 3.0 2.7
#>  [69] 2.2 2.5 3.2 2.8 2.5 2.8 2.9 3.0 2.8 3.0 2.9 2.6 2.4 2.4 2.7 2.7 3.0
#>  [86] 3.4 3.1 2.3 3.0 2.5 2.6 3.0 2.6 2.3 2.7 3.0 2.9 2.9 2.5 2.8 3.3 2.7
#> [103] 3.0 2.9 3.0 3.0 2.5 2.9 2.5 3.6 3.2 2.7 3.0 2.5 2.8 3.2 3.0 3.8 2.6
#> [120] 2.2 3.2 2.8 2.8 2.7 3.3 3.2 2.8 3.0 2.8 3.0 2.8 3.8 2.8 2.8 2.6 3.0
#> [137] 3.4 3.1 3.0 3.1 3.1 3.1 2.7 3.2 3.3 3.0 2.5 3.0 3.4 3.0

xx <- model.frame(Species ~ offset(Sepal.Width) + offset(Sepal.Length), iris)

model_offset(terms(xx), xx)
#>   [1]  8.6  7.9  7.9  7.7  8.6  9.3  8.0  8.4  7.3  8.0  9.1  8.2  7.8
#>  [14]  7.3  9.8 10.1  9.3  8.6  9.5  8.9  8.8  8.8  8.2  8.4  8.2  8.0
#>  [27]  8.4  8.7  8.6  7.9  7.9  8.8  9.3  9.7  8.0  8.2  9.0  8.5  7.4
#>  [40]  8.5  8.5  6.8  7.6  8.5  8.9  7.8  8.9  7.8  9.0  8.3 10.2  9.6
#>  [53] 10.0  7.8  9.3  8.5  9.6  7.3  9.5  7.9  7.0  8.9  8.2  9.0  8.5
#>  [66]  9.8  8.6  8.5  8.4  8.1  9.1  8.9  8.8  8.9  9.3  9.6  9.6  9.7
#>  [79]  8.9  8.3  7.9  7.9  8.5  8.7  8.4  9.4  9.8  8.6  8.6  8.0  8.1
#>  [92]  9.1  8.4  7.3  8.3  8.7  8.6  9.1  7.6  8.5  9.6  8.5 10.1  9.2
#> [105]  9.5 10.6  7.4 10.2  9.2 10.8  9.7  9.1  9.8  8.2  8.6  9.6  9.5
#> [118] 11.5 10.3  8.2 10.1  8.4 10.5  9.0 10.0 10.4  9.0  9.1  9.2 10.2
#> [131] 10.2 11.7  9.2  9.1  8.7 10.7  9.7  9.5  9.0 10.0  9.8 10.0  8.5
#> [144] 10.0 10.0  9.7  8.8  9.5  9.6  8.9

# Problematic columns are caught with intuitive errors
tryCatch(
  expr = {
    x <- model.frame(~ offset(Species), iris)
    model_offset(terms(x), x)
  },
  error = function(e) {
    print(e$message)
  }
)
#> Column, 'offset(Species)', is tagged as an offset, but is not numeric. All offsets must be numeric.
源代码:R/model-offset.R

相关用法


注:本文由纯净天空筛选整理自Davis Vaughan等大神的英文原创作品 Extract a model offset。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。