Hi, thanks for the comments. You have been of great help.
Regards On Mon, Jun 20, 2011 at 11:52 PM, Dennis Murphy <djmu...@gmail.com> wrote: > Hi: > > (a) What Brian said... > > (b) Here's one way to generate a list of model objects from which you > can extract the pieces you may want. > > # Generate a fairly minimal, reproducible data set > set.seed(345) # makes results below reproducible > dd <- data.frame(X = rnorm(100), Y = rnorm(100), > gp = factor(rep(LETTERS[1:5], each = 20))) > > # Basically, split the data frame by gp into a list of sub-data frames > # and fit lm() to each piece. We use the plyr package for this: > library(plyr) > mlist <- dlply(dd, .(gp), function(d) lm(Y ~ X, data = d)) > > # mlist is a list of lm objects, from which you can extract salient > # pieces using the l*ply functions from plyr. For example, > > # return the coefficients from each model fit: > > ldply(mlist, coef) > gp (Intercept) X > 1 A -0.05670893 -0.008741077 > 2 B -0.41071309 -0.134832968 > 3 C -0.02007992 0.379762195 > 4 D 0.04168990 0.213085495 > 5 E 0.19094314 0.010481033 > > # R^2: > > ldply(mlist, function(m) summary(m)$r.squared) > gp V1 > 1 A 9.287934e-05 > 2 B 1.684219e-02 > 3 C 1.200286e-01 > 4 D 4.235989e-02 > 5 E 7.294735e-05 > > # Table of coefficients, SEs and significance tests > # (outputs a list) > llply(mlist, function(m) summary(m)$coefficients) > > # Data frame of predicted values and residuals (multiple outputs): > ldply(mlist, function(m) data.frame(pred = fitted(m), res = resid(m))) > > HTH, > Dennis > > On Mon, Jun 20, 2011 at 12:23 PM, ivan <i.pet...@gmail.com> wrote: > > Hi, > > > > I have two datasets, x and y. Simplified x and y denote: > > > > X > > > > Y > > > > A B C A B C . . . . . . . . . . . . . . . . . . > > I want to implement all possible models such as lm(X$A~Y$A), lm(X$B~Y$B), > > lm(X$C~Y$C)... I have tried the following: > > > > fun<- function(x,y){ > > for(i in 1:length(colnames(x))){ > > for(j in 1:length(colnames(y))){ > > if(colnames(x)[i]==colnames(y)[j]){ > > models=list(lm(ts(x[i])~ts(y[j]))) > > } > > else{} > > } > > } > > return(models) > > } > > > > The problem is that this returns only one of the three models, namely the > > last one. What am I doing wrong? Thank you very much in advance. > > > > Regards > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > R-help@r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > > and provide commented, minimal, self-contained, reproducible code. > > > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.