Удалить переменную ответа из формулы - PullRequest
0 голосов
/ 08 января 2019

Есть ли простой способ удалить переменную ответа из формулы? Я пытался использовать stats::update.formula, например:

update(y ~ x, ~ .)
# y ~ x

Но вы можете видеть, что приведенное выше не удаляет переменную ответа из формулы.

Ответы [ 3 ]

0 голосов
/ 08 января 2019

Вы можете использовать NULL в качестве ответа.

update(y ~ x, NULL ~ .)
# ~x
0 голосов
/ 08 января 2019

Если формула имеет LHS, то этот LHS сохраняется во втором компоненте так:

fo <- y ~ x
fo[-2]
## ~x

Обратите внимание, что length(fo) может различать формулы с LHS и без него.

length(fo)
## [1] 3
length(fo[-2])
## [1] 2

поэтому, если мы не знаем, существует ли LHS, и хотим удалить его, если он есть, то:

if (length(fo) == 3) fo[-2] else fo
## ~x
0 голосов
/ 08 января 2019

Это не очень элегантно, но вы можете сделать следующее, чтобы удалить переменную ответа:

formula(delete.response(terms(y ~ x)))
# ~x
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...