na | R Documentation |
Functions for handling missing values in "timeSeries"
objects.
## S3 method for class 'timeSeries'
na.omit(object, method = c("r", "s", "z", "ir", "iz", "ie"),
interp = c("before", "linear", "after"), FUN, ...)
object |
an object of class |
method |
the method of handling NAs, see section ‘Details’. |
interp |
Three alternative methods are provided to remove NAs from the
data:
|
FUN |
a function or a name of a function, such as |
... |
arguments to be passed to the function |
Functions for handling missing values in "timeSeries"
objects
and in objects which can be transformed into a vector or a two
dimensional matrix.
For na.omit
argument method
specifies how to handle
NA
s. Can be one of the following strings:
na.rm = FALSE
, skip, i.e. do nothing,
remove NAs,
substitute NAs by zeros,
interpolate NAs and remove NAs at the beginning and end of the series,
interpolate NAs and substitute NAs at the beginning and end of the series,
interpolate NAs and extrapolate NAs at the beginning and end of theseries.
When dealing with daily data sets, there exists another function
alignDailySeries
which can handle missing data in un-aligned
calendrical "timeSeries"
objects.
Additional remarks by GNB:
removeNA(x)
is equivalent to na.omit(x)
or
na.omit(x), methods = "r"
.
interpNA
can be replaced by a call to na.omit
with
argument method equal to ir
, iz
, or ie
, and
argument "interp"
equal to the "method"
argument for
interpNA
(note that the defaults are not the same).
substituteNA(x, type = "zeros")
is equivalent to
na.omit(x, method = "z")
. For other values of type
one
can use argument FUN
, as in na.omit(x, FUN = "mean")
.
A final remark: the three deprecated functions are non-generic.
removeNA(x)
is completely redundant as it simply calls
na.omit
. The other two however may be useful for matrix-like
objects. Please inform the maintainer of the package if you use them
on objects other than from class "timeSeries"
and wish them
kept in the future.
Troyanskaya O., Cantor M., Sherlock G., Brown P., Hastie T., Tibshirani R., Botstein D., Altman R.B., (2001); Missing Value Estimation Methods for DNA microarrays Bioinformatics 17, 520–525.
alignDailySeries
X <- matrix(rnorm(100), ncol = 5) # Create a Matrix X
X[3, 5] <- NA # Replace a Single NA Inside
X[17, 2:4] <- c(NA, NA, NA) # Replace Three in a Row Inside
X[13:15, 4] <- c(NA, NA, NA) # Replace Three in a Column Inside
X[11:12, 5] <- c(NA, NA) # Replace Two at the Right Border
X[20, 1] <- NA # Replace One in the Lower Left Corner
X
Xts <- timeSeries(X) # convert X to timeSeries Xts
## remove rows with NAs
na.omit(Xts)
## Subsitute NA's with zeros or column means (formerly substituteNA())
na.omit(Xts, method = "z")
na.omit(Xts, FUN = "mean")
na.omit(Xts, FUN = "median")
## Subsitute NA's with a trimmed mean
na.omit(Xts, FUN = function(x, na.rm) mean(x, trim = 0.10, na.rm = na.rm))
## interpolate NA's linearily (formerly interpNA())
na.omit(X, method = "ir", interp = "linear")
na.omit(X, method = "iz", interp = "linear")
na.omit(X, method = "ie", interp = "linear")
## take previous values in a column
na.omit(X, method = "ir", interp = "before")
na.omit(X, method = "iz", interp = "before")
na.omit(X, method = "ie", interp = "before")
## examples with X (which is a matrix, not "timeSeries")
## (these examples are not run automatically as these functions are
## deprecated.)
if(FALSE){
## Remove Rows with NAs
removeNA(X)
## subsitute NA's by zeros or column means
substituteNA(X, type = "zeros")
substituteNA(X, type = "mean")
## interpolate NA's linearily
interpNA(X, method = "linear")
# Note the corner missing value cannot be interpolated!
## take previous values in a column
interpNA(X, method = "before")
# Also here, the corner value is excluded
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.