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.