如何从 R 中的公式中提取子集
How to extract a subset from a formula in R
假设我有一个公式:formula = Y ~ X1 + X2 + X3 + X4 + X5
并且我想随机 select 两个预测变量来生成 Y ~ RandomPredictor1 + RandomPredictor2
。我将如何在 R 中这样做?
使用reformulate
创建公式。使用 sample
将预测变量放入向量中并 select 随机两个
vars = c("X1", "X2", "X3", "X4", "X5")
#If you already have the formula, you can do
#vars = all.vars(formula)[-1]
set.seed(40)
reformulate(termlabels = sample(vars, 2), response = "y")
#y ~ X4 + X5
set.seed(35)
reformulate(termlabels = sample(vars, 2), response = "y")
#y ~ X5 + X1
d.b 答案的小补充:如果预测变量的名称未知,您可以使用
从公式 中检索它们
vars = attr(terms(formula), 'term.labels')
假设我有一个公式:formula = Y ~ X1 + X2 + X3 + X4 + X5
并且我想随机 select 两个预测变量来生成 Y ~ RandomPredictor1 + RandomPredictor2
。我将如何在 R 中这样做?
使用reformulate
创建公式。使用 sample
vars = c("X1", "X2", "X3", "X4", "X5")
#If you already have the formula, you can do
#vars = all.vars(formula)[-1]
set.seed(40)
reformulate(termlabels = sample(vars, 2), response = "y")
#y ~ X4 + X5
set.seed(35)
reformulate(termlabels = sample(vars, 2), response = "y")
#y ~ X5 + X1
d.b 答案的小补充:如果预测变量的名称未知,您可以使用
从公式 中检索它们vars = attr(terms(formula), 'term.labels')