views:

112

answers:

1

I have a data.frame with 3 time series in it, shown below. When I plot them with a smoother time series, I want to be able to get the parameters of the linear model that I plot, but I can't see how to do that?

   > data
   day   od series_id
    1    1 0.10        A1
    2    3 1.00        A1
    3    5 0.50        A1
    4    7 0.70        A1
    5    1 1.70        B1
    6    3 1.60        B1
    7    5 1.75        B1
    8    7 1.70        B1
    9    1 2.10        C1
    10   3 2.30        C1
    11   5 2.50        C1
    12   7 2.70        C1

    data = data.frame (day = c(1,3,5,7,1,3,5,7,1,3,5,7), 
    od = c(0.1,1.0,0.5,0.7 ,1.7,1.6,1.75,1.7 ,2.1,2.3,2.5,2.7), 
    series_id = c("A1", "A1", "A1","A1", "B1", "B1","B1", "B1", "C1","C1", "C1", "C1"))

    r <- ggplot(data = data, aes(x = day, y = od))
    r + stat_smooth(aes(group = series_id, color = series_id),method="lm")   
+1  A: 

I don't know if the layer objects should store all the results of computation in future, but currently the fitting is invoked on drawing and the model is not stored in the layer objects. As a simple workaround, you can get the same result by

 dlply(data,.(series_id),function(x)lm(od~day,data=x))
kohske