freq function

Frequency Tables for Factors and Other Discrete Data

Frequency Tables for Factors and Other Discrete Data

Displays weighted or unweighted frequencies, including counts and proportions.

freq( x, var = NULL, round.digits = st_options("round.digits"), order = "default", style = st_options("style"), plain.ascii = st_options("plain.ascii"), justify = "default", cumul = st_options("freq.cumul"), totals = st_options("freq.totals"), report.nas = st_options("freq.report.nas"), rows = numeric(), missing = "", na.val = st_options("na.val"), display.type = TRUE, display.labels = st_options("display.labels"), headings = st_options("headings"), weights = NA, rescale.weights = FALSE, ... )

Arguments

  • x: Factor, vector, or data frame.

  • var: Optional unquoted variable name. Provides support for piped function calls (e.g. my_df %>% freq(my_var)).

  • round.digits: Numeric. Number of significant digits to display. Defaults to 2. Can be set globally with st_options.

  • order: Character. Ordering of rows in frequency table; name

    (default for non-factors), level (default for factors), or freq (from most frequent to less frequent). To invert the order, place a minus sign before or after the word. -freq will thus display the items starting from the lowest in frequency to the highest, and so forth.

  • style: Character. Style to be used by pander. One of simple (default), grid , rmarkdown , or jira . Can be set globally with st_options.

  • plain.ascii: Logical. pander argument; when TRUE, no markup characters will be used (useful when printing to console). Defaults to TRUE unless style = 'rmarkdown', in which case it will be set to FALSE automatically. Can be set globally with st_options.

  • justify: String indicating alignment of columns. By default (default ), right is used for text tables and center is used for html tables. You can force it to one of left , center , or right .

  • cumul: Logical. Set to FALSE to hide cumulative proportions from results. TRUE by default. To change this value globally, see st_options.

  • totals: Logical. Set to FALSE to hide totals from results. TRUE by default. To change this value globally, see st_options.

  • report.nas: Logical. Set to FALSE to turn off reporting of missing values. To change this default value globally, see st_options.

  • rows: Character or numeric vector allowing subsetting of the results. The order given here will be reflected in the resulting table. If a single string is used, it will be used as a regular expression to filter row names.

  • missing: Text to display in NA cells. Defaults to .

  • na.val: Character. For factors and character vectors, consider this value as NA. Ignored if there are actual NA values or if it matches no value / factor level in the data. NULL by default.

  • display.type: Logical. Should variable type be displayed? Default is TRUE.

  • display.labels: Logical. Should variable / data frame labels be displayed? Default is TRUE. To change this default value globally, see st_options.

  • headings: Logical. Set to FALSE to omit heading section. Can be set globally via st_options.

  • weights: Vector of weights; must be of the same length as x.

  • rescale.weights: Logical parameter. When set to TRUE, the total count will be the same as the unweighted x. FALSE by default.

  • ...: Additional arguments passed to pander.

Returns

A frequency table of class matrix and summarytools with added attributes used by print method.

Details

The default plain.ascii = TRUE option is there to make results appear cleaner in the console. To avoid rmarkdown rendering problems, this option is automatically set to FALSE whenever style = "rmarkdown" (unless plain.ascii = TRUE is made explicit in the function call).

Note

The data type represents the class in most cases.

Examples

data(tobacco) freq(tobacco$gender) freq(tobacco$gender, totals = FALSE) # Ignore NA's, don't show totals, omit headings freq(tobacco$gender, report.nas = FALSE, totals = FALSE, headings = FALSE) # In .Rmd documents, use the two following arguments, minimally freq(tobacco$gender, style="rmarkdown", plain.ascii = FALSE) # Grouped Frequencies with(tobacco, stby(diseased, smoker, freq)) (fr_smoker_by_gender <- with(tobacco, stby(smoker, gender, freq))) # Print html Source print(fr_smoker_by_gender, method = "render", footnote = NA) # Order by frequency (+ to -) freq(tobacco$age.gr, order = "freq") # Order by frequency (- to +) freq(tobacco$age.gr, order = "-freq") # Use the 'rows' argument to display only the 10 most common items freq(tobacco$age.gr, order = "freq", rows = 1:10) ## Not run: # Display rendered html results in RStudio's Viewer # notice 'view()' is NOT written with capital V # If working outside RStudio, Web browser is used instead # A temporary file is stored in temp dir view(fr_smoker_by_gender) # Display rendered html results in default Web browser # A temporary file is stored in temp dir here too print(fr_smoker_by_gender, method = "browser") # Write results to text file (.txt, .md, .Rmd) or html file (.html) print(fr_smoker_by_gender, method = "render", file = "fr_smoker_by_gender.md) print(fr_smoker_by_gender, method = "render", file = "fr_smoker_by_gender.html) ## End(Not run)

See Also

table

Author(s)

Dominic Comtois, dominic.comtois@gmail.com