pilar schneider
2008-Nov-05 17:12 UTC
[R] how can I save the estimates of a regression model in a file?
Dear all I need some help with R. How can I save the estimates of a regression model in a file? here is what I did: 1) this is my regression model: fit1 <- lm(logmilk ~ logdays + days, data=data2) 2) however, I want to get the parameters estimates for each individual (by group): so i did the following: by(data2, list(data2$V2),function(.data2) lm(logmilk ~ logdays + days, data.data2)) 3) Then to keep the estimates in a file I did: res1 <- by(data2, list(data2$V2),function(.data2) lm(logmilk ~ logdays + V5, data= .data2)) 4) and this is what I get for each individual: : 1 Call: lm(formula = logmilk ~ logdays + days, data = .data2) Coefficients: (Intercept) logdays days 3.414105 0.069387 -0.001732 --------------------------------------------------------------------------- : 2 Call: lm(formula = logmilk ~ logdays + days, data = .data2) Coefficients: (Intercept) logdays days 3.2276114 0.1223412 -0.0006836 and so on: 5) THE QUESTION is: there is a way in R to get an output file as you get in SAS when you use: prog reg data=xxx outest=estimate; I would need an output that looks like this: individual intercept logdays days etc 1 3.414105 0.069387 -0.0006836 2 3.2276114 0.1223412 -0.0006836 n ........ .......... ......... THANKS FOR YOUR HELP Maria -- ----------------------------- pilar.schneider@gmail.com [[alternative HTML version deleted]]
Chuck Cleland
2008-Nov-05 18:07 UTC
[R] how can I save the estimates of a regression model in a file?
On 11/5/2008 12:12 PM, pilar schneider wrote:> Dear all > I need some help with R. > How can I save the estimates of a regression model in a file? > > here is what I did: > > 1) this is my regression model: > fit1 <- lm(logmilk ~ logdays + days, data=data2) > > 2) however, I want to get the parameters estimates for each individual (by > group): > so i did the following: > by(data2, list(data2$V2),function(.data2) lm(logmilk ~ logdays + days, data> .data2)) > > 3) Then to keep the estimates in a file I did: > res1 <- by(data2, list(data2$V2),function(.data2) lm(logmilk ~ logdays + V5, > data= .data2)) > > 4) and this is what I get for each individual: > : 1 > Call: > lm(formula = logmilk ~ logdays + days, data = .data2) > Coefficients: > (Intercept) logdays days > 3.414105 0.069387 -0.001732 > > --------------------------------------------------------------------------- > : 2 > Call: > lm(formula = logmilk ~ logdays + days, data = .data2) > > Coefficients: > (Intercept) logdays days > 3.2276114 0.1223412 -0.0006836 > > and so on: > > > 5) THE QUESTION is: > > there is a way in R to get an output file as you get in SAS when you use: > prog reg data=xxx outest=estimate; > I would need an output that looks like this: > > individual intercept logdays days etc > 1 3.414105 0.069387 -0.0006836 > 2 3.2276114 0.1223412 -0.0006836 > > n ........ .......... ......... > THANKS FOR YOUR HELP > > MariaConsider something like this: as.data.frame(t(sapply(split(data2, data2$V2), function(x){coef(lm(logmilk ~ logdays + days, data = x))}))) -- Chuck Cleland, Ph.D. NDRI, Inc. (www.ndri.org) 71 West 23rd Street, 8th floor New York, NY 10010 tel: (212) 845-4495 (Tu, Th) tel: (732) 512-0171 (M, W, F) fax: (917) 438-0894
hadley wickham
2008-Nov-05 19:41 UTC
[R] how can I save the estimates of a regression model in a file?
On Wed, Nov 5, 2008 at 11:12 AM, pilar schneider <pilar.schneider at gmail.com> wrote:> Dear all > I need some help with R. > How can I save the estimates of a regression model in a file? > > here is what I did: > > 1) this is my regression model: > fit1 <- lm(logmilk ~ logdays + days, data=data2) > > 2) however, I want to get the parameters estimates for each individual (by > group): > so i did the following: > by(data2, list(data2$V2),function(.data2) lm(logmilk ~ logdays + days, data> .data2)) > > 3) Then to keep the estimates in a file I did: > res1 <- by(data2, list(data2$V2),function(.data2) lm(logmilk ~ logdays + V5, > data= .data2)) >Here's one way that uses the plyr package (http://had.co.nz/) # Name the model fitting function fit_model <- function(df) lm(logmilk ~ logdays + days, data = df) # Create a list of models for each value of V2 # this is basically equivalent to by, but it deals with labelling a bit better models <- dlply(data2, .(V2), fit_model) # Produce a data frame containing the coefficients for each model ldply(models, coef) Hadley -- http://had.co.nz/