Hi Terry,
If I understood your problem you would estimate trend
and seasonal (as sum of sin and cos) in a ts.
If t is time, Y is your ts, T=f(t) is trend function
of time (it could be linear, quadratic, etc. as better
is for your data), e=errors/residuals  
Your model to fit will'be:
Y(t)=T(t)+a*cos(2*pi*t/12)+b*sin(2*pi*t/12)+e(t) 
using lm() function to estimate a linear/polinomial
trend and sin/cos seasonal:
cos.t <- cos(2*pi*t/12)
sin.t <- sin(2*pi*t/12)
gfit<-lm(y~t+cos.t+sin.t, data=yourdf)
see this example:
> t<-seq(1:48)
> t
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24 25
[26] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
42 43 44 45 46 47 48
y<-10+5*t+0.5*cos(2*pi*t/12)+0.2*sin(2*pi*t/12)+rnorm(48)> cos.t <- cos(2*pi*t/12)
> sin.t <- sin(2*pi*t/12)
> gfit<-lm(y~t+cos.t+sin.t)
> summary(gfit)
Call:
lm(formula = y ~ t + cos.t + sin.t)
Residuals:
     Min       1Q   Median       3Q      Max 
-2.10222 -0.62184 -0.09387  0.50586  2.74299 
Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 10.30466    0.30009  34.339   <2e-16 ***
t            4.98987    0.01071 465.793   <2e-16 ***
cos.t        0.30207    0.20604   1.466    0.150    
sin.t        0.08699    0.20961   0.415    0.680    
---
Signif. codes:  0 `***' 0.001 `**' 0.01 `*' 0.05 `.'
0.1 ` ' 1 
Residual standard error: 1.008 on 44 degrees of
freedom
Multiple R-Squared: 0.9998,     Adjusted R-squared:
0.9998 
F-statistic: 7.525e+04 on 3 and 44 DF,  p-value: <
2.2e-16 
I hope I helped you.
Best
Vito
 
====Diventare costruttori di soluzioni
Became solutions' constructors
"The business of the statistician is to catalyze 
the scientific learning process."  
George E. P. Box
Visitate il portale http://www.modugno.it/
e in particolare la sezione su Palese  http://www.modugno.it/archivio/palese/