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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。