I have an irregular time series, which cannot easily be converted to a ts
object (long stretches with NA).

I have calculated the climatological mean and st.dev, but need help on how
to calculate the anomalies from the climatology and my original data set.
Below is an example, where I have indicated the basic idea of what I want to
do under Question 1 and 2. I assume I will have to create a custom function
or use one of the apply functions, but I would greatly appreciate any help
on how this can be achieved. 

# sample of data frame
> dput(head(Dat, 10))
structure(list(open_date = structure(c(11742, 11966, 11987, 12001, 
12015, 12029, 12043, 12064, 12085, 12099), class = "Date"), Dry_w = c(2.4, 
14.05, 28.55, 20.76, 18.6, NA, 20.72, 18.47, 12.42, 25.57), PP_int = c(NA, 
1281.52, 1352.15, 1333.05, 959.6, 738.24, 176.73, NA, 108.61, 
518.42)), .Names = c("open_date", "Dry_w", "PP_int"), row.names = 166:175,
class = "data.frame")

# monthly climatology: mean and st.dev for each calender month
> (clim.m <- aggregate(Dat, by=list(Month=format(Dat$open_date, "%m")),
> mean, na.rm=TRUE))
Month open_date Dry_w PP_int
1 01 2008-05-02 31.36200 299.9450
2 02 2006-11-09 21.94889 648.6460
3 03 2005-12-08 54.28700 454.7282
4 04 2005-09-11 87.05167 827.9433
5 05 2006-04-13 99.20818 961.3408
6 06 2007-07-19 99.98583 1203.0925
7 07 2007-06-24 72.55867 1561.2331
8 08 2007-06-11 48.58545 1750.0082
9 09 2006-11-20 74.86500 2443.2527
10 10 2006-12-25 45.15000 3466.7880
11 11 2006-03-14 30.59750 1938.0700
12 12 2007-02-27 24.38571 636.9043
> (clim.sd <- aggregate(Dat, by=list(Month=format(Dat$open_date, "%m")), sd,
> na.rm=TRUE))
Month open_date Dry_w PP_int
1 01 1225.5924 9.978272 196.2999
2 02 1258.2528 17.905547 447.2490
3 03 1202.0288 25.974303 163.2227
4 04 965.2724 67.163564 260.5524
5 05 1003.5452 57.804352 290.2006
6 06 828.4384 66.481851 384.5991
7 07 937.5725 45.718293 701.1342
8 08 907.5030 38.550746 513.8539
9 09 910.0279 81.506413 1532.9001
10 10 1180.1643 22.080882 2204.2142
11 11 1152.4069 15.250971 870.4910
12 12 1175.0547 14.899713 281.2347

# Question 1, Anomalies (deviation from mean): subtracting climatological
mean from observed data
anom <- Dat - clim.m

# Question 2, Standardized anomalies (or normalized anomalies): dividing
monthly anomalies by the climatological st.dev
st.anom <- anom / clim.sd





                                          



--
View this message in context: 
http://r.789695.n4.nabble.com/Calculating-seasonal-anomalies-tp4658932.html
Sent from the R help mailing list archive at Nabble.com.
        [[alternative HTML version deleted]]

______________________________________________
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.

Reply via email to