Skip to contents

[Stable]

We can count the occurrence of specific values in a variable of interest.

Usage

s_count_values(
  x,
  values,
  na.rm = TRUE,
  .N_col,
  .N_row,
  denom = c("n", "N_row", "N_col")
)

# S3 method for character
s_count_values(x, values = "Y", na.rm = TRUE, ...)

# S3 method for factor
s_count_values(x, values = "Y", ...)

# S3 method for logical
s_count_values(x, values = TRUE, ...)

a_count_values(
  x,
  values,
  na.rm = TRUE,
  .N_col,
  .N_row,
  denom = c("n", "N_row", "N_col")
)

count_values(
  lyt,
  vars,
  values,
  ...,
  table_names = vars,
  .stats = "count_fraction",
  .formats = NULL,
  .labels = c(count_fraction = paste(values, collapse = ", ")),
  .indent_mods = NULL
)

Arguments

x

(numeric)
vector of numbers we want to analyze.

values

(character)
specific values that should be counted.

na.rm

(flag)
whether NA values should be removed from x prior to analysis.

.N_col

(count)
row-wise N (row group count) for the group of observations being analyzed (i.e. with no column-based subsetting) that is passed by rtables.

.N_row

(count)
column-wise N (column count) for the full column that is passed by rtables.

denom

(string)
choice of denominator for proportion. Options are:

  • n: number of values in this row and column intersection.

  • N_row: total number of values in this row across columns.

  • N_col: total number of values in this column across rows.

...

additional arguments for the lower level functions.

lyt

(layout)
input layout where analyses will be added to.

vars

(character)
variable names for the primary analysis variable to be iterated over.

table_names

(character)
this can be customized in case that the same vars are analyzed multiple times, to avoid warnings from rtables.

.stats

(character)
statistics to select for the table.

.formats

(named character or list)
formats for the statistics.

.labels

(named character)
labels for the statistics (without indent).

.indent_mods

(named integer)
indent modifiers for the labels. Defaults to 0, which corresponds to the unmodified default behavior. Can be negative.

Value

  • s_count_values() returns output of s_summary() for specified values of a non-numeric variable.

  • count_values() returns a layout object suitable for passing to further layouting functions, or to rtables::build_table(). Adding this function to an rtable layout will add formatted rows containing the statistics from s_count_values() to the table layout.

Functions

  • s_count_values(): S3 generic function to count values.

  • s_count_values(character): Method for character class.

  • s_count_values(factor): Method for factor class. This makes an automatic conversion to character and then forwards to the method for characters.

  • s_count_values(logical): Method for logical class.

  • a_count_values(): Formatted analysis function which is used as afun in count_values().

  • count_values(): Layout-creating function which can take statistics function arguments and additional format arguments. This function is a wrapper for rtables::analyze().

Note

  • For factor variables, s_count_values checks whether values are all included in the levels of x and fails otherwise.

  • For count_values(), variable labels are shown when there is more than one element in vars, otherwise they are hidden.

Examples

# `s_count_values.character`
s_count_values(x = c("a", "b", "a"), values = "a")
#> $n
#> [1] 3
#> 
#> $count
#> [1] 2
#> 
#> $count_fraction
#> [1] 2.0000000 0.6666667
#> 
#> $n_blq
#> [1] 0
#> 
s_count_values(x = c("a", "b", "a", NA, NA), values = "b", na.rm = FALSE)
#> $n
#> [1] 5
#> 
#> $count
#> [1] 1
#> 
#> $count_fraction
#> [1] 1.0 0.2
#> 
#> $n_blq
#> [1] 0
#> 

# `s_count_values.factor`
s_count_values(x = factor(c("a", "b", "a")), values = "a")
#> $n
#> [1] 3
#> 
#> $count
#> [1] 2
#> 
#> $count_fraction
#> [1] 2.0000000 0.6666667
#> 
#> $n_blq
#> [1] 0
#> 

# `s_count_values.logical`
s_count_values(x = c(TRUE, FALSE, TRUE))
#> $n
#> [1] 3
#> 
#> $count
#> [1] 2
#> 
#> $count_fraction
#> [1] 2.0000000 0.6666667
#> 
#> $n_blq
#> [1] 0
#> 

# `a_count_values`
a_count_values(x = factor(c("a", "b", "a")), values = "a", .N_col = 10, .N_row = 10)
#> RowsVerticalSection (in_rows) object print method:
#> ----------------------------
#>         row_name formatted_cell indent_mod      row_label
#> 1              n              3          0              n
#> 2          count              2          0          count
#> 3 count_fraction     2 (66.67%)          0 count_fraction
#> 4          n_blq              0          0          n_blq

# `count_values`
basic_table() %>%
  count_values("Species", values = "setosa") %>%
  build_table(iris)
#>            all obs  
#> ————————————————————
#> setosa   50 (33.33%)