5
votes

Supprimer la variable de réponse d'une formule

Existe-t-il un moyen simple de supprimer la variable de réponse d'une formule? J'ai essayé d'utiliser stats :: update.formula , comme ceci:

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

Mais vous pouvez voir que ce qui précède ne supprime pas la variable de réponse de la formule.

r

0 commentaires

3 Réponses :


1
votes

Ce n'est pas très élégant, mais vous pouvez faire ce qui suit pour supprimer la variable de réponse:

formula(delete.response(terms(y ~ x)))
# ~x


0 commentaires

5
votes

Vous pouvez utiliser NULL comme réponse.

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


0 commentaires

2
votes

Si la formule a un LHS alors ce LHS est stocké dans le deuxième composant ainsi:

if (length(fo) == 3) fo[-2] else fo
## ~x

Notez que length (fo) peut faire la distinction entre les formules avec et sans LHS.

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

donc si nous ne savons pas s'il existe un LHS et que nous voulons le supprimer s'il y en a un, alors:

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


0 commentaires