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.
3 Réponses :
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
Vous pouvez utiliser NULL comme réponse.
update(y ~ x, NULL ~ .) # ~x
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