Ok...I am sorry for the misunderstanding.... what I am trying to do is....
>> lm.list2 <- list() >> for(i in seq_along(pricemedia)){ >> regr <- paste(pricemedia[i], trendseason, sep = "+") >> fmla <- paste(response, regr, sep = "~") >> lm.list2[[i]] <- lm(as.formula(fmla), data = tryout2) } When I run...this set of statements....the 1st regression to be run, will have Price 1, Media 1...as X variables....and in the second loop it will have Price 1 & Media 2 .... So, what I was thinking is...if I can generate inside the for loop....the mean for Price 1 and Media 1 during the 1st loop....and then mean for Price 1 and Media 2 during the second loop...and so on...for all the 10 regressions Is the method that I was trying appropriate...or is there a better method there...I am sorry for the earlier explanation, I hope this one makes it more understandable Thanks for your time...and all the quick replies Thanks & Regards, Krunal Nanavati 9769-919198 -----Original Message----- From: Rui Barradas [mailto:ruipbarra...@sapo.pt] Sent: 28 September 2012 16:49 To: Krunal Nanavati Cc: David Winsemius; r-help@r-project.org Subject: Re: [R] Running different Regressions using for loops Ok, if I'm understanding it well, you want the mean value of Price1, , Price5? I don't know if it makes any sense, the coefficients already are mean values, but see if this is it. price.coef <- sapply(lm.list, function(x) coef(x)[2]) mean(price.coef) Rui Barradas Em 28-09-2012 12:07, Krunal Nanavati escreveu: > Hi, > > Yes the thing that you provided...works fine....but probably I should > have asked for some other thing. > > Here is what I am trying to do.... > > I am trying to get the mean of Price variable....so I am entering the > below function: > > mean(names(lm.list2[[2]]$coefficient[2] )) > > but this gives me an error.... > > [1] NA > Warning message: > In mean.default(names(lm.list2[[2]]$coefficient[2])) : > argument is not numeric or logical: returning NA > > I thought by getting the text from the list variable...will help me > generate the mean for that text...which is a variable in the > data...say Price 1, Media 2....and so on > > Is this a proper approach...if it is...then something more needs to be > done with the function that you provided. > > If not, is there a better way...to generate the mean of a particular > variable inside the " for loop " used earlier...given below: > >> lm.list2 <- list() >> for(i in seq_along(pricemedia)){ >> regr <- paste(pricemedia[i], trendseason, sep = "+") >> fmla <- paste(response, regr, sep = "~") >> lm.list2[[i]] <- lm(as.formula(fmla), data = tryout2) } > > > > Thanks & Regards, > > Krunal Nanavati > 9769-919198 > > > -----Original Message----- > From: Rui Barradas [mailto:ruipbarra...@sapo.pt] > Sent: 28 September 2012 16:02 > To: Krunal Nanavati > Cc: David Winsemius; r-help@r-project.org > Subject: Re: [R] Running different Regressions using for loops > > Hello, > > Try > > names(lm.list2[[2]]$coefficient[2] ) > > Rui Barradas > Em 28-09-2012 11:29, Krunal Nanavati escreveu: >> Ok...this solves a part of my problem >> >> When I type " lm.list2[2] " ...I get the following output >> >> [[1]] >> >> Call: >> lm(formula = as.formula(fmla), data = tryout2) >> >> Coefficients: >> (Intercept) Price2 Media1 Distri1 Trend >> Seasonality >> 13491232 -5759030 -1520 34370 48628 >> 445351 >> >> >> >> >> When I enter " lm.list2[[2]]$coefficient[2] " it gives me the below >> output >> >> Price2 >> -5759030 >> >> And when I enter " lm.list2[[2]]$coefficient[[2]] " ...I get the >> number...which is -5759030 >> >> >> I am looking out for a way to get just the " Price2 "....is there a >> statement for that?? >> >> >> >> Thanks & Regards, >> >> Krunal Nanavati >> 9769-919198 >> >> >> -----Original Message----- >> From: Rui Barradas [mailto:ruipbarra...@sapo.pt] >> Sent: 28 September 2012 15:18 >> To: Krunal Nanavati >> Cc: David Winsemius; r-help@r-project.org >> Subject: Re: [R] Running different Regressions using for loops >> >> Hello, >> >> To access list elements you need `[[`, like this: >> >> summ.list[[2]]$coefficients >> >> Or Use the extractor function, >> >> coef(summ.list[[2]]) >> >> Rui Barradas >> Em 28-09-2012 07:23, Krunal Nanavati escreveu: >>> Hi Rui, >>> >>> Excellent!! This is what I was looking for. Thanks for the help. >>> >>> So, now I have stored the result of the 10 regressions in >> "summ.list >>> <- lapply(lm.list2, summary)" >>> >>> And now once I enter " sum.list "....it gives me the output for >> all >>> the 10 regressions... >>> >>> I wanted to access a beta coefficient of one of the >>> regressions....say "Price2+Media1+Trend+Seasonality"...the result of > which is stored in" >>> sum.list[2] " >>> >>> I entered the below statement for accessing the Beta coefficient for >>> Price2... >>> >>>> summ.list[2]$coefficients[2] >>> NULL >>> >>> But this is giving me " NULL " as the output... >>> >>> What I am looking for, is to access a beta value of a particular >>> variable from a particular regression output and use it for further >> analysis. >>> Can you please help me out with this. Greatly appreciate, you guys >>> efforts. >>> >>> >>> >>> >>> Thanks & Regards, >>> >>> Krunal Nanavati >>> 9769-919198 >>> >>> -----Original Message----- >>> From: Rui Barradas [mailto:ruipbarra...@sapo.pt] >>> Sent: 27 September 2012 21:55 >>> To: Krunal Nanavati >>> Cc: David Winsemius; r-help@r-project.org >>> Subject: Re: [R] Running different Regressions using for loops >>> >>> Hello, >>> >>> Inline. >>> Em 27-09-2012 13:52, Krunal Nanavati escreveu: >>>> Hi, >>>> >>>> Thanks for all your help. I am stuck again, but with a new problem, >>>> on similar lines. >>>> >>>> I have taken the problem to the next step now...i have now added 2 >> "for" >>>> loops... 1 for the Price variable...and another for the Media >>>> variable >>>> >>>> I have taken 5 price variables...and 2 media variables with the >>>> "trend and seasonality"(appearing in all of them)....so in all >>>> there will be >>>> 10 regression to run now >>>> >>>> Price 1, Media 1 >>>> >>>> Price 1, Media 2 >>>> >>>> Price 2, Media 1' >>>> >>>> Price 2, Media 2 >>>> >>>> ...and so on >>>> >>>> I have built up a code for it... >>>> >>>> >>>> >>>> >>>>> tryout=read.table("C:\\Users\\Krunal\\Desktop\\R >>>> tryout.csv",header=T,sep=",") >>>>> cnames <- names(tryout) >>>>> price <- cnames[grep("Price", cnames)] media <- >>>>> cnames[grep("Media", cnames)] resp <- cnames[1] regr <- >>>>> cnames[7:8] lm.list <- vector("list", 10) for(i in 1:5) >>>> + { >>>> + regress <- paste(price[i], paste(regr, collapse = "+"), sep = >>>> + "+") for(j in 1:2) { >>>> + regress1 <- paste(media[j],regress,sep="+") fmla <- paste(resp, >>>> + regress1, sep = "~") lm.list[[i]] <- lm(as.formula(fmla), data = >>>> + tryout) } } >>>>> summ.list <- lapply(lm.list, summary) summ.list >>>> >>>> >>>> But it is only running...5 regressions...only Media 1 along with >>>> the >>>> 5 Price variables & Trend & Seasonality is regressed on >>>> Volume...giving only >>>> 5 outputs >>>> >>>> I feel there is something wrong with the " lm.list[[i]] <- >>>> lm(as.formula(fmla), data = tryout)" statement. >>> No, I don't think so. If it's giving you only 5 outputs the error is >>> probably in the fmla construction. Put print statements to see the >>> results of those paste() instructions. >>> >>> Supposing your data.frame is now called tryout2, >>> >>> >>> price <- paste("Price", 1:5, sep = "") media <- paste("Media", 1:2, >>> sep = "") pricemedia <- apply(expand.grid(price, media, >>> stringsAsFactors = FALSE), 1, paste, collapse="+") >>> >>> response <- "Volume" >>> trendseason <- "Trend+Seasonality" # do this only once >>> >>> lm.list2 <- list() >>> for(i in seq_along(pricemedia)){ >>> regr <- paste(pricemedia[i], trendseason, sep = "+") >>> fmla <- paste(response, regr, sep = "~") >>> lm.list2[[i]] <- lm(as.formula(fmla), data = tryout2) } >>> >>> The trick is to use ?expand.grid >>> >>> Hope this helps, >>> >>> Rui Barradas >>> >>>> I am not sure about its >>>> placement...whether it should be in loop 2 or in loop 1 >>>> >>>> Can you please help me out?? >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> Thanks & Regards, >>>> >>>> Krunal Nanavati >>>> 9769-919198 >>>> >>>> -----Original Message----- >>>> From: Rui Barradas [mailto:ruipbarra...@sapo.pt] >>>> Sent: 27 September 2012 16:22 >>>> To: David Winsemius >>>> Cc: Krunal Nanavati; r-help@r-project.org >>>> Subject: Re: [R] Running different Regressions using for loops >>>> >>>> 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:ruipbarra...@sapo.pt] >>>>>> *Sent:* 26 September 2012 17:13 >>>>>> *To:* Krunal Nanavati >>>>>> *Cc:* r-help@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 >>>>> ______________________________________________ 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.