Monthly Function
Generic function for obtaining 12 monthly values of a zoo object, by applying any R function to ALL the values in the object belonging to each one of the 12 calendar months (Jan...Dec).
monthlyfunction(x, ...) ## Default S3 method: monthlyfunction(x, FUN, na.rm = TRUE, ...) ## S3 method for class 'zoo' monthlyfunction(x, FUN, na.rm=TRUE,...) ## S3 method for class 'data.frame' monthlyfunction(x, FUN, na.rm = TRUE, dates=1, date.fmt = "%Y-%m-%d", out.type = "data.frame", verbose = TRUE, ...) ## S3 method for class 'matrix' monthlyfunction(x, FUN, na.rm = TRUE, dates=1, date.fmt = "%Y-%m-%d", out.type = "data.frame", verbose = TRUE, ...)
x |
zoo, xts, data.frame or matrix object, with daily or monthly time series. |
FUN |
Function that will be applied to ALL the values in |
na.rm |
Logical. Should missing values be removed? |
dates |
It is only used when |
date.fmt |
It is only used when |
out.type |
It is only used when |
verbose |
Logical; if TRUE, progress messages are printed |
... |
further arguments passed to or from other methods |
When x
is a zoo object, a numeric vector with 12 elements representing the computed monthly value for each month.
When x
is a data.frame which columns represent measurements at different gauging stations, the resulting object is a data.frame with 12 columns and as many rows as gauging stations are in x
, each row storing the computed 12 monthly value for each gauging station.
Due to the fact that FUN
is applied over all the elements in x
belonging to a given calendar month, its result will depend on the sampling frequency of x
and the type of function provided by FUN
(special attention have to be put when FUN=sum
)
Mauricio Zambrano-Bigiarini, mzb.devel@gmail
## Loading daily streamflows (3 years) at the station ## Oca en Ona (Ebro River basin, Spain) data(OcaEnOnaQts) x <- OcaEnOnaQts ## Mean monthly streamflows at station 'x' monthlyfunction(x, FUN=mean, na.rm=TRUE) ############################ ## Boxplot of monthly values ## Daily to Monthly m <- daily2monthly(x, FUN=mean, na.rm=TRUE) ## Median of the monthly values at the station monthlyfunction(m, FUN=median, na.rm=TRUE) ## Vector with the three-letter abbreviations of the month names cmonth <- format(time(m), "%b") ## Creating ordered monthly factors months <- factor(cmonth, levels=unique(cmonth), ordered=TRUE) ## Boxplot of the monthly values boxplot( coredata(m) ~ months, col="lightblue", main="Monthly streamflows, [m3/s]") ############################## ############################## ## Loading the monthly time series of precipitation within the Ebro River basin. data(EbroPPtsMonthly) x <- EbroPPtsMonthly ## Dates of 'x' dates <- as.Date(x[,1]) ## Monthly precipitation of all the stations in 'x' ## Not run: ## Sum of the monthly values in each station of 'x' z <- zoo( x[, 2:ncol(x)], dates) # Amount of years in 'x' (needed for computing the average) nyears <- yip(from=start(z), to=end(z), out.type="nmbr" ) m <- monthlyfunction(z, FUN=sum) ## Another way of computing the sum of the monthly values in each station of 'x' ## This way is usefult for posteriori boxplots m2 <- monthlyfunction(x, FUN=sum, dates=1, out.type="db") ## Average monthly precipitation in each station of 'x' m2$Value <- m2$Value / nyears ## Creating monthly factors m2$Month <- factor(m2$Month, levels=month.abb) ## boxplot of the monthly values in all stations boxplot(Value ~ Month, m2, col="lightyellow", main="Monthly Precipitation, [mm/month]") ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.