View source: R/monthlyfunction.R

monthlyfunction | R Documentation |

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

`annualfunction`

, `seasonalfunction`

, `dm2seasonal`

, `daily2monthly`

, `daily2annual`

```
## 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)
```

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.