model_offset()
从模型框架中提取数字偏移量。它受到 stats::model.offset()
的启发,但具有更好的错误消息并且稍微严格一些。
参数
- 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 hardhat model_matrix 构建设计矩阵
- R hardhat model_frame 构建模型框架
- R hardhat mold 用于建模的模具数据
- R hardhat validate_prediction_size 确保预测具有正确的行数
- R hardhat default_recipe_blueprint 默认配方蓝图
- R hardhat is_blueprint x 是预处理蓝图吗?
- R hardhat validate_column_names 确保数据包含所需的列名
- R hardhat default_formula_blueprint 默认公式蓝图
- R hardhat update_blueprint 更新预处理蓝图
- R hardhat weighted_table 加权表
- R hardhat validate_outcomes_are_univariate 确保结果是单变量
- R hardhat get_levels 从 DataFrame 中提取因子水平
- R hardhat add_intercept_column 向数据添加截距列
- R hardhat is_frequency_weights x 是频率权重向量吗?
- R hardhat standardize 标准化结果
- 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 validate_no_formula_duplication 确保公式中不出现重复项
- R hardhat default_xy_blueprint 默认 XY 蓝图
- R hardhat shrink 仅对所需列进行子集化
- R hardhat validate_outcomes_are_numeric 确保结果都是数字
- R hardhat scream ? 尖叫。
注:本文由纯净天空筛选整理自Davis Vaughan等大神的英文原创作品 Extract a model offset。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。