Prior answers are certainly correct, but this is where lists and lapply shine:
result<-lapply(list(UK,USA),function(z)summary(lm(y~x,data=z))) As in (nearly) all else, simplicity is a virtue. If you prefer to keep the data sources as a character vector,dataNames, result<-lapply(dataNames,function(z)summary(lm(y~x,data=get(z)))) should work. Note: both of these are untested for the general case where they might be used within a function and may not find the right z unless you pay attention to scope, especially in the get() construction. Bert Gunter Genentech Nonclinical Statistics South San Francisco, CA 94404 -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED] Sent: Monday, January 29, 2007 8:23 AM To: [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED] Cc: [email protected] Subject: Re: [R] Loop with string variable AND customizable "summary" output Dear All, Thank you very much for your help! Carlo -----Original Message----- From: Wensui Liu [mailto:[EMAIL PROTECTED] Sent: Mon 29/01/2007 15:39 To: Rosa,C Cc: [email protected] Subject: Re: [R] Loop with string variable AND customizable "summary" output Carlo, try something like: for (i in c("UK","USA")) { summ<-summary(lm(y ~ x), subset = (country = i)) assign(paste('output', i, sep = ''), summ); } (note: it is untested, sorry). On 1/29/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > Dear All, > > I am using R for my research and I have two questions about it: > > 1) is it possible to create a loop using a string, instead of a numeric vector? I have in mind a specific problem: > > Suppose you have 2 countries: UK, and USA, one dependent (y) and one independent variable (y) for each country (vale a dire: yUK, xUK, yUSA, xUSA) and you want to run automatically the following regressions: > > > > for (i in c("UK","USA")) > > output{i}<-summary(lm(y{i} ~ x{i})) > > > > In other words, at the end I would like to have two objects as output: "outputUK" and "outputUSA", which contain respectively the results of the first and second regression (yUK on xUK and yUSA on xUSA). > > > > 2) in STATA there is a very nice code ("outreg") to display nicely (and as the user wants to) your regression results. > > Is there anything similar in R / R contributed packages? More precisely, I am thinking of something that is close in spirit to "summary" but it is also customizable. For example, suppose you want different Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 or a different format display (i.e. without "t value" column) implemented automatically (without manually editing it every time). > > In alternative, if I was able to see it, I could modify the source code of the function "summary", but I am not able to see its (line by line) code. Any idea? > > Or may be a customizable regression output already exists? > > Thanks really a lot! > > Carlo > > ______________________________________________ > [email protected] 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. > -- WenSui Liu A lousy statistician who happens to know a little programming (http://spaces.msn.com/statcompute/blog) ______________________________________________ [email protected] 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. ______________________________________________ [email protected] 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.
