This function takes a mids
object and returns a new
mids
object that pertains to the subset of the data
identified by the expression in .... The expression may use
column values from the incomplete data in .data$data
.
Usage
# S3 method for class 'mids'
filter(.data, ..., .preserve = FALSE)
Arguments
- .data
A
mids
object.- ...
Expressions that return a logical value, and are defined in terms of the variables in
.data$data
. If multiple expressions are specified, they are combined with the&
operator. Only rows for which all conditions evaluate toTRUE
are kept.- .preserve
Relevant when the
.data
input is grouped. If.preserve = FALSE
(the default), the grouping structure is recalculated based on the resulting data, otherwise the grouping is kept as is.
Note
The function calculates a logical vector include
of length nrow(.data$data)
.
The function constructs the elements of the filtered mids
object as follows:
data | Select rows in .data$data for which include == TRUE |
imp | Select rows each imputation data.frame in .data$imp for which include == TRUE |
m | Equals .data$m |
where | Select rows in .data$where for which include == TRUE |
blocks | Equals .data$blocks |
call | Equals .data$call |
nmis | Recalculate nmis based on the selected data rows |
method | Equals .data$method |
predictorMatrix | Equals .data$predictorMatrix |
visitSequence | Equals .data$visitSequence |
formulas | Equals .data$formulas |
post | Equals .data$post |
blots | Equals .data$blots |
ignore | Select positions in .data$ignore for which include == TRUE |
seed | Equals .data$seed |
iteration | Equals .data$iteration |
lastSeedValue | Equals .data$lastSeedValue |
chainMean | Set to NULL |
chainVar | Set to NULL |
loggedEvents | Equals .data$loggedEvents |
version | Replaced with current version |
date | Replaced with current date |
Examples
imp <- mice(nhanes, m = 2, maxit = 1, print = FALSE)
# example with external logical vector
imp_f <- filter(imp, c(rep(TRUE, 13), rep(FALSE, 12)))
nrow(complete(imp))
#> [1] 25
nrow(complete(imp_f))
#> [1] 13
# example with calculated include vector
imp_f2 <- filter(imp, age >= 2 & hyp == 1)
nrow(complete(imp_f2)) # should be 5
#> [1] 5