# rowMeans_if: Row Means Conditional on Frequency of Observed Values In quest: Prepare Questionnaire Data for Analysis

## Description

`rowMean_if` calculates the mean of every row in a numeric or logical matrix conditional on the frequency of observed data. If the frequency of observed values in that row is less than (or equal to) that specified by `ov.min`, then NA is returned for that row.

## Usage

 `1` ```rowMeans_if(x, ov.min = 1, prop = TRUE, inclusive = TRUE) ```

## Arguments

 `x` numeric or logical matrix. If not a matrix, it will be coerced to one. `ov.min` minimum frequency of observed values required per row. If `prop` = TRUE, then this is a decimal between 0 and 1. If `prop` = FALSE, then this is a integer between 0 and `ncol(x)`. `prop` logical vector of length 1 specifying whether `ov.min` should refer to the proportion of observed values (TRUE) or the count of observed values (FALSE). `inclusive` logical vector of length 1 specifying whether the mean should be calculated if the frequency of observed values in a row is exactly equal to `ov.min`.

## Details

Conceptually this function does: ```apply(X = x, MARGIN = 1, FUN = mean_if, ov.min = ov.min, prop = prop, inclusive = inclusive)```. But for computational efficiency purposes it does not because then the observed values conditioning would not be vectorized. Instead, it uses `rowMeans` and then inserts NAs for rows that have too few observed values

## Value

numeric vector of length = `nrow(x)` with names = `rownames(x)` providing the mean of each row or NA depending on the frequency of observed values.

`rowSums_if` `colMeans_if` `colSums_if` `rowMeans`
 ```1 2``` ```rowMeans_if(airquality) rowMeans_if(x = airquality, ov.min = 5, prop = FALSE) ```