Hello, I'm trying to develop a box plot of time series data to look at the
range in the data values over the entire period of record.

My data initially starts out as a list of hourly data, and then I've been
using this code to make this data into the final ts array.

# Read in the station list
stn.list <- read.csv("/home/kbennett/fews/stnlist3", as.is=T, header=F)

# Read in all three variables.
vars <- c("MAT", "MAP", "MAP06")

for (stn in stn.list) {
  for (v in 1:length(vars) {
    # Read in year month start and end dates table & name it
    ym.table <- read.csv("/home/kbennett/fews/", stn, var, ".ym.txt", as.is=T,
header=F)
    names(ym.table) <- c("yearstart", "monthstart", "yearend", "monthend")

    fn <- paste(stn, ".", vars[v], ".FIN", sep="")
      if(file.exists(fn)) {
        clim.dat <- read.csv(fn, header=F)
        names(clim.dat) <- c("cdata")
        year.start <- ym.table$yearstart
        year.end <- ym.table$yearend

        mo.start <- ym.table$monthstart
        mo.end <- ym.table$monthend

        regts.start = ISOdatetime(year.start, mo.start, 1, hour=0, min=0,
sec=0, tz="GMT")
        regts.end = ISOdatetime(year.end, mo.end, 1, hour=18, min=0, sec=0,
tz="GMT")

        zts <- zooreg(clim.dat$cdata, start = regts.start, end = regts.end,
frequency = 4, deltat = 21600)

        #Create a daily average from the timeseries
        zta <- aggregate(zts, as.POSIXct(cut(time(zts), "24 hours",
include=T)), mean)

        #Select hourly data from the timeseries based on a specific time
        zt.hr <- aggregate(zts, as.Date, head, 4)
        zt.hr.ym <- aggregate(zt.hr, as.yearmon, head, 4)
        zt.hr.1 <- zt.hr.ym[,1]
        zt.hr.2 <- zt.hr.ym[,2]
        zt.hr.3 <- zt.hr.ym[,3]
        zt.hr.4 <- zt.hr.ym[,4]

        zt.hr.1a <- aggregate(zt.hr.1, as.yearmon)
        min.y <- min(zt.hr)
        max.y <- max(zt.hr)

        frequency(zt.hr.1) <- 12
        zt.1.mo <-  as.ts(zt.hr.1)

        #Monthly boxplots of daily averages, for the months
        boxplot(zt.1.mo ~ month,                   ##THIS IS WHAT DOESN'T
WORK HERE
         boxwex=0.25, at=(1:12)-0.2,
         outline = F,
         col = "gray",
         xlab = "Month",
         ylab = expression(paste("( ",T^o,"C )") ),
         ylim = c(min.y-5,max.y+5),
         yaxs = "i",
         xaxt = "n",
         main = vars)
        axis(1, at=c(1:12), labels=month.abb, cex.axis = 0.65)
        legend("topright", c("Hour 00"), fill = c("gray"))
    }



        #write the results to a csv file
        write.csv(cdat, paste(stn, "_", vars[v], ".csv", sep=""),
row.names=T, col.names=T)

    }
}


The final array looks like this:

        Jan    Feb    Mar    Apr    May    Jun    Jul    Aug    Sep
Oct    Nov    Dec
1948 28.719  4.977 39.037  9.746  8.348 36.672 47.660 54.076 38.062 34.486
11.938 39.666
1949 11.698 -6.675 16.844  0.950 10.349 38.752 39.785 40.544 57.603 35.476
2.308 -7.960
1950  0.340 45.206  6.385 17.132 19.074 38.465 48.711 54.686 48.743 33.978
23.090 10.007
1951 12.398 31.304 47.182  4.539 23.223 45.668 50.516 53.239 59.402 28.081
16.427 14.839
1952 -7.693 30.561 33.478 14.799 12.750 35.359 43.180 57.840 44.593 43.768
8.574 14.587
1953 -9.875 38.726 26.393 12.881 19.228 48.833 49.903 56.224 48.829 23.783
19.308 14.292
1954 35.943 16.706 16.021  7.806 23.593 40.418 45.310 53.113 49.203 29.480
17.228 33.068
1955 23.363 15.706 14.100 17.271 19.258 36.969 47.301 51.826 40.446 35.201
16.463 11.132
1956 45.868 -8.504 48.167 10.746 25.024 36.247 47.741 52.160 41.781 29.115
25.414 21.954



My main problem is that I can't access the rows (i.e. months) to subset the
data by.

Could someone point out how I am able to get at the months in this array and
subset them for plotting using the boxplot function?


Thank you,

Katrina

-- 
Katrina E. Bennett
PhD Student
University of Alaska Fairbanks
International Arctic Research Center
930 Koyukuk Drive, PO Box 757340
Fairbanks, Alaska 99775-7340
907-474-1939 office
907-385-7657 cell
kebennett@alaska.edu


Personal Address:
UAF, PO Box 752525
Fairbanks, Alaska 99775-2525
bennett.katrina@gmail.com

	[[alternative HTML version deleted]]

