zoo (version 1.8-3)

na.aggregate: Replace NA by Aggregation

Description

Generic function for replacing each NA with aggregated values. This allows imputing by the overall mean, by monthly means, etc.

Usage

na.aggregate(object, …)
# S3 method for default
na.aggregate(object, by = 1, …, FUN = mean,
             na.rm = FALSE, maxgap = Inf)

Arguments

object

an object.

by

a grouping variable corresponding to object, or a function to be applied to time(object) to generate the groups.

further arguments passed to by if by is a function.

FUN

function to apply to the non-missing values in each group defined by by.

na.rm

logical. Should any remaining NAs be removed?

maxgap

maximum number of consecutive NAs to fill. Any longer gaps will be left unchanged.

Value

An object in which each NA in the input object is replaced by the mean (or other function) of its group, defined by by. This is done for each series in a multi-column object. Common choices for the aggregation group are a year, a month, all calendar months, etc.

If a group has no non-missing values, the default aggregation function mean will return NaN. Specify na.rm = TRUE to omit such remaining missing values.

See Also

zoo

Examples

Run this code
# NOT RUN {
z <- zoo(c(1, NA, 3:9),
         c(as.Date("2010-01-01") + 0:2,
           as.Date("2010-02-01") + 0:2,
           as.Date("2011-01-01") + 0:2))
## overall mean
na.aggregate(z)
## group by months
na.aggregate(z, as.yearmon)
## group by calendar months
na.aggregate(z, months)
## group by years
na.aggregate(z, format, "%Y")
# }

Run the code above in your browser using DataCamp Workspace