[R] Running different Regressions using for loops

Rui Barradas ruipbarradas at sapo.pt
Thu Sep 27 12:51:32 CEST 2012


Hello,

Just to add that you can also

lapply(lm.list, coef)

with a different output.

Rui Barradas
Em 27-09-2012 09:24, David Winsemius escreveu:
> On Sep 26, 2012, at 10:31 PM, Krunal Nanavati wrote:
>
>> Dear Rui,
>>
>> Thanks for your time.
>>
>> I have a question though, when I run the 5 regression, whose outputs are
>> stored in “lm.list[i]”, I only get the coefficients for the Intercept,
>> Price, Trend & Seasonality as below
>>
>>
>>> lm.list[1]
>> [[1]]
>>
>> Call:
>>
>> lm(formula = as.formula(fmla), data = tryout)
>>
>> Coefficients:
>>
>> (Intercept)       Price4        Trend  Seasonality
>>
>>     9923123     -2606826        64616       551392
> summ.list <- lapply(lm.list, summary)
> coef.list <- lapply(summ.list, coef)
> coef.list
>
>> I am also looking out for t stats and p value and R squared.
> For the r.squared
>
> rsq.vec <- sapply(summ.list, "$", "r.squared")
> adj.rsq <- sapply(summ.list, "$", "adj.r.squared")
>
>> Do you know,
>> how can I get all these statistics. Also, why is “ as.formula “ used in the
>> lm function. It should work without that as well, right?
> No.
>>
>> Can you please tell me, why the code that I had written, does not work with
>> R. I thought it should work perfectly.
> In R there is a difference between expression objects and character objects.
>
>
>> Thanks & Regards,
>>
>>
>>
>> Krunal Nanavati
>>
>> 9769-919198
>>
>>
>>
>> *From:* Rui Barradas [mailto:ruipbarradas at sapo.pt]
>> *Sent:* 26 September 2012 17:13
>> *To:* Krunal Nanavati
>> *Cc:* r-help at r-project.org
>> *Subject:* Re: [R] Running different Regressions using for loops
>>
>>
>>
>> Hello,
>>
>> Try the following.
>>
>>
>> #cnames <- names(tryout)  # in your code, use this one
>> cnames <- c("Volume", "Price1", "Price2", "Price3", "Price4", "Price5",
>> "Trend", "Seasonaliy")
>>
>> price <- cnames[grep("Price", cnames)]
>> resp <- cnames[1]
>> regr <- cnames[7:8]
>>
>> #lm.list <- vector("list", 5)
>> for(i in 1:5){
>>     regress <- paste(price[i], paste(regr, collapse = "+"), sep = "+")
>>     fmla <- paste(resp, regress, sep = "~")
>>     print(fmla)
>>     #lm.list[[i]] <- lm(as.formula(fmla), data = tryout)
>> }
>>
>> Hope this helps,
>>
>> Rui Barradas
>>
>> Em 26-09-2012 08:08, Krunal Nanavati escreveu:
>>
>> Hi,
>>
>>
>> I am trying to run many different regressions using a FOR Loop.
>>
>>
>> The input data that is read into R has the following variables
>>
>> ·         Volume
>> ·         Price2
>> ·         Price3
>> ·         Price4
>> ·         Price5
>> ·         Trend
>> ·         Seasonality
>>
>> I want to run 5 regressions, with the Volume as an dependent variable and
>>
>> Price, Trend & Seasonality as independent variables. I have read the above
>>
>> mentioned variables in a variable called “tryout”
>>
>>
>>
>> I am entering the following syntax in R
>>
>>
>> for(i in 1:5)
>>
>> + {
>> + result[i]=lm(Volume~Price[i]+Trend+Seasonaliy,data=tryout)
>> + summary(result[i])
>> + }
>>
>> After running these lines…I am getting the following error message
>> Error in eval(expr, envir, enclos) : object 'Price' not found
>>
>> Can someone help me out with this error message. Appreciate for your time
>>
>> and consideration.
>>
>>
>>
>>   [[alternative HTML version deleted]]
>>
>>
> David Winsemius, MD
> Alameda, CA, USA
>




More information about the R-help mailing list