considérer Je veux écrire une fonction qui me permettra de spécifier les données, la variable de regroupement ( La fonction ressemblerait à ceci (qui ne fonctionne pas): p> Comment faites-vous cela? Je suis particulièrement confus sur la manière de spécifier la formule de ce format! P> p> créé ici: région code>, état code> ou loc code>) et noms de ligne des variables ( var1 code>: var5 code>) avec lequel Je veux qu'il effectue une Manova et retourne les résultats en format bien rangé. L'exécution de la fonction ressemblerait à quelque chose comme ceci: manova.test (dat = dat1, groupvar = "région", cols = 5: 9) code> p>
3 Réponses :
Vous pouvez utiliser créé sur 2020- 05-27 par le package Reprex (v0.3.0) sup> p> p> P> P> P> obtenir code> pour renvoyer l'objet nommé dans la fonction. L'inconvénient est que la variable sera étiquetée get (groupvar) code> dans le résumé, donc je l'ai renommé dans votre fonction:
Si vous êtes juste inquiet pour la formule, vous étiez presque là. Cela devrait fonctionner
manova.test <- function(df, groupvar) {
manova(cbind(var1, var2) ~ df[[groupvar]], data = df)
}
manova.test(dat1, "Region")
Voici une approche basée sur win-vector.com/blog/2018/09/r-tip-how-to-pass-a-formula-a-lm/, la chose cool à propos de cette solution est que vous pouvez étendre facilement groupvar pour plusieurs colonnes