从R中的公式提取模型框架时排除变量

从R中的公式提取模型框架时排除变量,r,R,我在R中使用model.frame()(在函数中使用),但我无法通过使用-排除公式中的一些变量。 例如,在具有变量“y”、“x1”、“x2”和“x3”的数据帧(数据)中,通过使用: model.frame(y ~ . - x3, data) 我会得到一个包含所有“y”、“x1”、“x2”和“x3”的数据帧 是否有一种方法可以使用公式排除“x3”,而不直接删除变量,如:数据[,-4]?我不知道如何超级干净地执行此操作,但您可以通过几个步骤来完成: # example data data <

我在R中使用
model.frame()
(在函数中使用),但我无法通过使用
-
排除公式中的一些变量。 例如,在具有变量“y”、“x1”、“x2”和“x3”的数据帧(数据)中,通过使用:

model.frame(y ~ . - x3, data)
我会得到一个包含所有“y”、“x1”、“x2”和“x3”的数据帧


是否有一种方法可以使用公式排除“x3”,而不直接删除变量,如:
数据[,-4]

我不知道如何超级干净地执行此操作,但您可以通过几个步骤来完成:

# example data
data <- data.frame(y=0,x1=1,x2=2,x3=3)

假设您没有寻找y~x1+x2?相关的(尽管它没有回答这个问题)-我不确定这是否可以被认为更“干净”:
model.frame(公式(术语(y~.-x3,data=data,simplify=TRUE)),data)
mf <- model.frame(y ~ ., data, subset=FALSE)
#formula(mf)
##y ~ x1 + x2 + x3
model.frame(update(formula(mf), ~ . -x3), data=data)