我在R中使用model.frame()
(在函數中使用),但我無法設法通過使用-
來排除一些帶有公式的變量。 例如,在與變量「Y」,「X1」,「X2」和「×3」的數據幀(數據),通過使用:從R公式中提取模型框時排除變量
model.frame(y ~ . - x3, data)
我會得到包括所有的「y」的數據幀,「x1」,「x2」和「x3」。
有沒有辦法使用公式排除「x3」,而不是直接刪除變量:data[,-4]
?
我在R中使用model.frame()
(在函數中使用),但我無法設法通過使用-
來排除一些帶有公式的變量。 例如,在與變量「Y」,「X1」,「X2」和「×3」的數據幀(數據),通過使用:從R公式中提取模型框時排除變量
model.frame(y ~ . - x3, data)
我會得到包括所有的「y」的數據幀,「x1」,「x2」和「x3」。
有沒有辦法使用公式排除「x3」,而不是直接刪除變量:data[,-4]
?
我想不出如何幹淨地做到這一點超,但你可以在幾個步驟做到這一點:
# example data
data <- data.frame(y=0,x1=1,x2=2,x3=3)
獲取的data
的背景下,充分擴大公式,然後刪除:
mf <- model.frame(y ~ ., data, subset=FALSE)
#formula(mf)
##y ~ x1 + x2 + x3
model.frame(update(formula(mf), ~ . -x3), data=data)
我不確定這是否可以被認爲更「乾淨」:'model.frame(formula(terms(y〜。 - x3,data = data,simplify = TRUE)),數據)' – Roland
@roland - 這很漂亮實際上好 – thelatemail
假設你不是在尋找y〜x1 + x2? – PhilC
相關(雖然它不回答這個問題) - http://stackoverflow.com/questions/5251507/how-to-succinctly-write-a-formula-with-many-variables-from-a-data-frame – thelatemail