That's cool!

it works :-)))

for me (as a stata user) these are quite basic things and I didn't find them
anywhere for what concerns R. I can't figure out why.
Really, thank you so much,
f.


On 27 September 2011 14:20, Petr PIKAL <petr.pikal@precheza.cz> wrote:

> Hi Francesco
>
> > Dear Petr,
> >
> > thank you so much for your quick reply. I was sure that there were some
> > smart ways to address my issue. I went through it and took some time to
> > look at the help for lapply and mapply.
> > However, some doubts still remain. Following your example, I did:
> > lll <-vector(mode = "list", length = 3)
> > mmm <-vector(mode = "list", length = 3)
> >
> > yyy <- lapply(lll, function(x) runif(100, min =0, max = 1))
> > xxx <- lapply(mmm, function(x) runif(100, min =0, max = 1))
> >
> > but then I get stucking again. It's not clear to me how to pass a lm
> > command to mapply. I tried to give a look at lapply and sapply, but I
> did
> > not manage to go much further.
> > It would be of big help if you could give me some more hints on this or
> if
> > you could provide me with some references. I am sorry, but I find the
> help
> > files quite cryptic. Is there a manual or some other source that you
> would
> > advice me where I could find some more example on how to deal with
> similar issues?
>
> You can use for cycle
>
> for (i in 1:3) lll[[i]] <-lm(yyy[[i]]~xxx[[i]])
>
> put result of lm to list object lll then
>
> lapply(lll, summary)
>
> gives you summary of each lm function, if you want to use mapply
>
> mmm<-mapply(function(x,y) lm(y~x), xxx, yyy, SIMPLIFY=F)
>
> you can see structure of any object by
> str(mmm)
>
> Both results shall be similar, for this case I believe that for loop is
> easier to understand.
>
> Regards
> Petr
>
>
>
> >
> > Thank you very much for your precious support,
> > f.
> >
>
> > On 27 September 2011 10:08, Petr PIKAL <petr.pikal@precheza.cz> wrote:
> > Hi
> >
> > > Dear R listers,
> > >
> > > I am trying to be a new R user, but life is not that easy.
> > > My problem is the following one: let's assume to have 3 outcome
> > variables
> > > (y1, y2, y3) and 3 explanatory ones (x1, x2, x3).
> > > How can I run the following three separate regressions without having
> to
> > > repeat the lm command three times?
> > >
> > > fit.1 <- lm(y1 ~ x1)
> > > fit.2 <- lm(y2 ~ x2)
> > > fit.3 <- lm(y3 ~ x3)
> > >
> > >
> > > Both the y and x variables have been generated extracting random
> numbers
> > > from uniform distributions using a command such as:
> > >
> > > y1 <- runif(100, min = 0, max = 1)
> > >
> > > I went to several introductory manuals, the manual R for stata users,
> > > econometrics in R, Introductory statistics with R and several blogs
> and
> > help
> > > files, but I didn't find an answer to my question.
> > > can you please help me? In Stata I wouldn't have any problem  in
> running
> > > this as a loop, but I really can't figure out how to do that with R.
>
> > You can construct loop with naming through paste, numbers and get in R
> too
> > but you will find your life much easier to use R powerfull list
> > operations.
> >
> > Insted of
> >
> > y1 <- runif(100, min = 0, max = 1)
> > ...
> >
> > lll <- vector(mode="list", length=3)
> > lll <- lapply(1, function(x) runif(100, min = 0, max = 1))
> >
> > you can use probably mapply for doing your regression.
> > Or you can easily access part of the list by loop
> >
> > for (i in 1:3) lm(lll[[i]]~xx[[i]])
> >
> > (if you have your x's in list xx)
> >
> > Regards
> > Petr
> >
> > > Thanks in advance for all your help.
> > > Best,
> > > f.
> > >
> > >    [[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]]

