Hallo zu trennen. Ich würde gerne sehen, was der Koeffizient für y1 bis y6 ~ x1 für jedes Land ist. Gibt es eine Möglichkeit, dies sauber mit dplyr und Besen zu tun? Ich weiß dplyr ziemlich gut, aber bin neu in Besen.Fit Reihe von linearen Modellen abhängige Variablen für eine andere Gruppierung Variable
#one random independent variable
x1<-rnorm(100, mean=5, sd=1)
#one random dependent variable
y1<-rnorm(100, mean=2, sd=2)
#two random dependent variables, in reality I have six
y2<-rnorm(100, mean=3, sd=1)
#Grouping variable.
country<-sample(seq(1,3,1), size=100, replace=T)
#data frame
df<-data.frame(x1, y1, y2, country)
#I would like to see what the coefficients are for y1~x1
and then y2 ~x2 for country 1, country 2, country 3, etc.
library(dplyr)
#Fit one model for each of three countries
test<-df%>%
group_by(country) %>%
do(mod.y1=lm(y1~x1, data=.))
#print results
test$mod.y1
OK, das ist perfekt, aber ich verstehe nicht ganz die Syntax der Argumente ordentlich. Wie verhält sich Tidy (test, mod.y1) zu anderen Variablennamen in anderen Modellen? – spindoctor
@spindoctor Es gab einen Tippfehler in meiner Antwort (jetzt behoben), sollte "ordentlich (passt, mod)" sein. Das Argument 'mod' besagt, dass die Modelle, die wir aufräumen wollen, in der Spalte' mod' liegen (wie in 'do (mod =' oben) definiert. Versuchen Sie 'help (rowwise_df_tidiers)' in R für mehr (oder sehen Sie [hier ] (http://www.inside-r.org/node/355600)) –
Die Antwort ist, dass das Argument y in Tidy (x, y) der Name des Modells ist, das in der vorherigen do angepasst wurde() Befehl. – spindoctor