| monthlyfunction {hydroTSM} | R Documentation |
Monthly Function
Description
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).
Usage
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, ...)
Arguments
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 |
Value
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.
Note
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)
Author(s)
Mauricio Zambrano-Bigiarini, mzb.devel@gmail
See Also
annualfunction, seasonalfunction, dm2seasonal, daily2monthly, daily2annual
Examples
## 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)