Learn R Programming

scrime (version 1.3.5)

rowFreqs: Rowwise Frequencies

Description

Computes the frequencies of the levels that the categorical variables in a matrix show.

Usage

rowFreqs(x, levels = 1:3, divide.by.n = FALSE, affy = FALSE,
   includeNA = FALSE, useNN = c("not", "only", "also"), check = TRUE)

Arguments

x

a matrix in which each row represents a categorical variable (e.g., a SNP) and each column an observation, where the variables are assumed to show the levels specified by levels. Missing values are allowed in x.

levels

vector specifying the levels that the categorical variables in x show. Ignored if affy = TRUE.

divide.by.n

should the numbers of observations showing the respective levels be divided by the total number of observations, i.e.\ by ncol(x)? If FALSE, these numbers are divided by the number of non-missing values of the respective variable. Ignored if includeNA = TRUE.

affy

logical specifying whether the SNPs in x are coded in the Affymetrix standard way. If TRUE, levels = c("AA", "AB", "BB") and useNN = "also" will be used (the latter only when includeNA = TRUE).

includeNA

should a column be added to the output matrix containing the number of missing values for each variable?

useNN

character specifying whether missing values can also be coded by "NN". If useNN = "not" (default), missing values are assumed to be coded only by NA. If "only", then missing values are assumed to be coded only by "NN" (and not by NA. If "both", both "NN" and NA are considered. Ignored if affy = TRUE.

check

should it be checked whether some of the variables show other levels than the one specified by levels?

Value

A matrix with the same number of rows as x containing for each variable the numbers of observations showing the levels specified by levels.

See Also

rowTables

Examples

Run this code
# NOT RUN {
# Generate a matrix containing data for 10 categorical 
# variables with levels 1, 2, 3.

mat <- matrix(sample(3, 500, TRUE), 10)

rowFreqs(mat)

# leads to the same results as 

rowTables(mat) / ncol(mat)

# If mat contains missing values

mat[sample(500, 20)] <- NA

# then

rowFreqs(mat)

# leads to the same result as

rowTables(mat) / rowSums(!is.na(mat))

# }

Run the code above in your browser using DataLab