Je veux utiliser dplyr pour regrouper une donnée.frame, ajuster des régressions linéaires et enregistrer les résiduels sous forme de colonne dans les données originales et non groupées.frame.
Voici un exemple P>
Sepal.Length Sepal.Width resid 1 5.1 3.5 0.04428474 2 4.9 3.0 0.18952960 3 4.7 3.2 -0.14856834 4 4.6 3.1 -0.17951937 5 5.0 3.6 -0.12476423 6 5.4 3.9 0.06808885
3 Réponses :
J'ai adapté un exemple de http://jimhester.github.io/plyrtodplampyr/ .
Source: local data frame [150 x 10] Groups: Species Species Sepal.Length Sepal.Width .fitted .se.fit .resid .hat 1 setosa 5.1 3.5 5.055715 0.03435031 0.04428474 0.02073628 2 setosa 4.9 3.0 4.710470 0.05117134 0.18952960 0.04601750 3 setosa 4.7 3.2 4.848568 0.03947370 -0.14856834 0.02738325 4 setosa 4.6 3.1 4.779519 0.04480537 -0.17951937 0.03528008 5 setosa 5.0 3.6 5.124764 0.03710984 -0.12476423 0.02420180 ...
(Je comprends ce qui se passe mais je n'aurais jamais compris cela seul. Pourquoi, par exemple, ai-je besoin d'une fonction anonyme dans le second faire code> mais pas le premier?)
Depuis que vous exécutez exactement la même régression pour chaque groupe, vous trouverez peut-être simplement de simplement définir votre modèle de régression sous forme de fonction code> à l'avance, puis l'exécute pour chaque groupe en utilisant Mutate Code>.
Species Sepal.Length Sepal.Width resid
<fctr> <dbl> <dbl> <dbl>
1 setosa 5.1 3.5 0.04428474
2 setosa 4.9 3.0 0.18952960
3 setosa 4.7 3.2 -0.14856834
4 setosa 4.6 3.1 -0.17951937
5 setosa 5.0 3.6 -0.12476423
6 setosa 5.4 3.9 0.06808885
Une solution qui semble être plus facile que celles proposées jusqu'à présent et plus proche du code de la question initiale est la suivante: résultat: p>