Как извлечь подмножество из формулы в R
Скажи, у меня есть формула: formula = Y ~ X1 + X2 + X3 + X4 + X5
и я хочу случайным образом выбрать два из этих предикторов, чтобы сделать Y ~ RandomPredictor1 + RandomPredictor2
, Как бы я сделал это в R?
2 ответа
Решение
Использование 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
Небольшое дополнение к ответу db: если имена предикторов неизвестны, вы можете извлечь их из формулы, используя
vars = attr(terms(formula), 'term.labels')