Computes the mean of a set of variables, with the option to exclude certain values (for non-responses like "Don't know"/"Decline to answer") and to set a maximum number of missing values.
Arguments
- data
tbl. Data frame containing the columns to be summarized.
- name
character. The name of the summary score.
- vars
character vector. The names of the columns to be summarized.
- max_na
numeric, positive whole number. Number of missing items allowed (Default: NULL; no restriction on missing values).
- exclude
character (vector). The value(s) to be excluded (Default: NULL; all values are used).
- events
character (vector). Only compute the summary score for the specified events (Default: NULL; computed for all events).
- combine
logical. Whether to combine the summary score column with the input data frame (Default: TRUE).
Examples
data <- tibble::tribble(
~session_id, ~a, ~b, ~c, ~d, ~e,
"ses-00A", 1, 1, 1, 1, NA,
"ses-01A", 2, 777, 2, 2, 2,
"ses-02A", 3, 3, 999, 3, 3,
"ses-02A", 4, 4, 4, 777, NA,
"ses-03A", 5, NA, 777, 999, 5,
"ses-03A", NA, NA, NA, NA, NA,
"ses-04A", 1, NA, NA, NA, NA
)
data |>
ss_mean(
name = "mean",
vars = c("a", "b", "c", "d", "e"),
max_na = 1,
exclude = c("777", "999")
)
#> # A tibble: 7 × 7
#> session_id a b c d e mean
#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 ses-00A 1 1 1 1 NA 1
#> 2 ses-01A 2 777 2 2 2 2
#> 3 ses-02A 3 3 999 3 3 3
#> 4 ses-02A 4 4 4 777 NA NA
#> 5 ses-03A 5 NA 777 999 5 NA
#> 6 ses-03A NA NA NA NA NA NA
#> 7 ses-04A 1 NA NA NA NA NA
data |>
ss_mean(
name = "mean",
vars = c("a", "b", "c", "d", "e"),
max_na = 1,
exclude = c("777", "999"),
combine = FALSE
)
#> # A tibble: 7 × 1
#> mean
#> <dbl>
#> 1 1
#> 2 2
#> 3 3
#> 4 NA
#> 5 NA
#> 6 NA
#> 7 NA
data |>
ss_mean(
name = "mean",
vars = c("a", "b", "c", "d", "e"),
max_na = NULL,
exclude = NULL,
events = c("ses-00A", "ses-01A"),
)
#> # A tibble: 7 × 7
#> session_id a b c d e mean
#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 ses-00A 1 1 1 1 NA 1
#> 2 ses-01A 2 777 2 2 2 157
#> 3 ses-02A 3 3 999 3 3 NA
#> 4 ses-02A 4 4 4 777 NA NA
#> 5 ses-03A 5 NA 777 999 5 NA
#> 6 ses-03A NA NA NA NA NA NA
#> 7 ses-04A 1 NA NA NA NA NA