model.frame
位于 stats
包(package)。 说明
model.frame
(通用函数)及其方法返回 data.frame
,其中包含使用 formula
和任何 ...
参数所需的变量。
用法
model.frame(formula, ...)
## Default S3 method:
model.frame(formula, data = NULL,
subset = NULL, na.action = na.fail,
drop.unused.levels = FALSE, xlev = NULL, ...)
## S3 method for class 'aovlist'
model.frame(formula, data = NULL, ...)
## S3 method for class 'glm'
model.frame(formula, ...)
## S3 method for class 'lm'
model.frame(formula, ...)
get_all_vars(formula, data, ...)
参数
formula |
|
data |
data.frame、列表或环境(或由 |
subset |
要使用的行的规范:默认为所有行。这可以是 |
na.action |
如何处理 |
drop.unused.levels |
未使用的因子是否应该下降?默认为 |
xlev |
指定的字符向量列表,给出每个因子假定的完整级别集。 |
... |
对于 对于 |
细节
到底发生什么取决于对象 formula
的类和属性。如果这是 fitted-model 类的对象,例如 "lm"
,该方法将返回拟合模型时使用的保存的模型框架(如果有,通常由参数 model = TRUE
选择)或传递拟合时使用的调用到默认方法。如果没有提供其他参数,默认方法本身可以处理相当标准的模型对象,例如包 MASS
中的类 "lqs"
的对象。
本节的其余部分仅适用于默认方法。
如果formula
或data
已经是模型框架(具有"terms"
属性的 DataFrame 架),而另一个缺失,则返回模型框架。除非 formula
是一个术语对象,否则会调用 as.formula
,然后调用 terms
。 (如果您希望使用 terms.formula
的 keep.order
参数,请传递术语对象而不是公式。)
模型框架的行名称取自 data
参数(如果存在),然后取自公式中的响应名称(如果是矩阵,则取自行名称)(如果有)。
中的所有变量formula
,subset
并在...
首先在data
然后在环境中formula
(请参阅帮助formula()
了解更多详细信息)并收集到 DataFrame 中。然后subset
计算表达式,并将其用作 DataFrame 的行索引。然后na.action
函数应用于 DataFrame (并且很可能添加属性)。 DataFrame 中任何因子的水平都根据drop.unused.levels
和xlev
参数:如果xlev
指定一个因子并找到一个字符变量,将其转换为一个因子(如R2.10.0)。
由于公式中的变量是在基于 subset
删除行之前进行评估的,因此 data-dependent 基的特征,例如正交多项式(即使用 poly
的项)或样条线将基于完整数据集而不是计算子集化的一个。
除非 na.action = NULL
,否则时间序列属性将从找到的变量中删除(因为如果删除 NA
,它们将是错误的)。
请注意,公式中的所有变量都包含在 DataFrame 中,即使是前面带有 -
的变量。
只有类型为原始、逻辑、整数、实数、复数或字符的变量才能包含在模型框架中:这包括分类变量,例如因子(其基础类型为整数),但不包括列表。
get_all_vars
返回 data.frame
,其中包含 formula
中使用的变量以及 ...
中指定的变量,这些变量将被回收到数据帧行数。与 model.frame.default
不同,它返回输入变量,而不是 formula
中函数调用产生的变量。
值
data.frame
包含 formula
中使用的变量以及 ...
中指定的变量。它将具有其他属性,包括 "terms"
用于从 formula
派生的类 "terms"
的对象,并且可能 "na.action"
提供有关 NA
的处理信息(如果没有特殊处理,则不会出现)完成,例如通过 na.pass
)。
例子
data.class(model.frame(dist ~ speed, data = cars))
## get_all_vars(): new var.s are recycled (iff length matches: 50 = 2*25)
ncars <- get_all_vars(sqrt(dist) ~ I(speed/2), data = cars, newVar = 2:3)
stopifnot(is.data.frame(ncars),
identical(cars, ncars[,names(cars)]),
ncol(ncars) == ncol(cars) + 1)
参考
Chambers, J. M. (1992) Data for models. Chapter 3 of Statistical Models in S eds J. M. Chambers and T. J. Hastie, Wadsworth & Brooks/Cole.
也可以看看
model.matrix
用于“设计矩阵”,formula
用于公式,expand.model.frame
用于 model.frame 操作。
相关用法
- R model.matrix 构建设计矩阵
- R model.tables 计算 Aov 模型拟合的结果表
- R model.extract 从模型框架中提取组件
- R mood.test 情绪二样本量表检验
- R monthplot 绘制时间序列中的季节性或其他子序列
- R medpolish 矩阵的中值波兰(稳健双向分解)
- R mcnemar.test 计数数据的麦克尼马尔卡方检验
- R mantelhaen.test 计数数据的 Cochran-Mantel-Haenszel 卡方检验
- R mahalanobis 马哈拉诺比斯距离
- R manova 多变量方差分析
- R make.link 为 GLM 家庭创建链接
- R median 中值
- R makepredictcall 用于安全预测的实用函数
- R mauchly.test 莫奇利球形度检验
- R mad 中值绝对偏差
- R stlmethods STL 对象的方法
- R naprint 调整缺失值
- R summary.nls 总结非线性最小二乘模型拟合
- R summary.manova 多元方差分析的汇总方法
- R formula 模型公式
- R nls.control 控制 nls 中的迭代
- R aggregate 计算数据子集的汇总统计
- R deriv 简单表达式的符号和算法导数
- R kruskal.test Kruskal-Wallis 秩和检验
- R quade.test 四方测试
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Extracting the Model Frame from a Formula or Fit。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。