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.