This function describes a distribution by a set of indices (e.g., measures of centrality, dispersion, range, skewness, kurtosis).

describe_distribution(x, ...)

# S3 method for numeric
describe_distribution(
  x,
  centrality = "mean",
  dispersion = TRUE,
  iqr = TRUE,
  range = TRUE,
  quartiles = FALSE,
  ci = NULL,
  iterations = 100,
  threshold = 0.1,
  ...
)

# S3 method for factor
describe_distribution(x, dispersion = TRUE, range = TRUE, ...)

# S3 method for data.frame
describe_distribution(
  x,
  centrality = "mean",
  dispersion = TRUE,
  iqr = TRUE,
  range = TRUE,
  quartiles = FALSE,
  include_factors = FALSE,
  ci = NULL,
  iterations = 100,
  threshold = 0.1,
  ...
)

Arguments

x

A numeric vector.

...

Additional arguments to be passed to or from methods.

centrality

The point-estimates (centrality indices) to compute. Character (vector) or list with one or more of these options: "median", "mean", "MAP" or "all".

dispersion

Logical, if TRUE, computes indices of dispersion related to the estimate(s) (SD and MAD for mean and median, respectively).

iqr

Logical, if TRUE, the interquartile range is calculated (based on IQR, using type = 6).

range

Return the range (min and max).

quartiles

Return the first and third quartiles (25th and 75pth percentiles).

ci

Confidence Interval (CI) level. Default is NULL, i.e. no confidence intervals are computed. If not NULL, confidence intervals are based on bootstrap replicates (see iterations). If centrality = "all", the bootstrapped confidence interval refers to the first centrality index (which is typically the median).

iterations

The number of bootstrap replicates for computing confidence intervals. Only applies when ci is not NULL.

threshold

For centrality = "trimmed" (i.e. trimmed mean), indicates the fraction (0 to 0.5) of observations to be trimmed from each end of the vector before the mean is computed.

include_factors

Logical, if TRUE, factors are included in the output, however, only columns for range (first and last factor levels) as well as n and missing will contain information.

Value

A data frame with columns that describe the properties of the variables.

Note

There is also a plot()-method implemented in the see-package.

Examples

describe_distribution(rnorm(100))
#> Mean | SD | IQR | Range | Skewness | Kurtosis | n | n_Missing #> --------------------------------------------------------------------------- #> -0.05 | 0.99 | 1.27 | [-2.57, 2.47] | 0.14 | -0.03 | 100 | 0
data(iris) describe_distribution(iris)
#> Variable | Mean | SD | IQR | Range | Skewness | Kurtosis | n | n_Missing #> ---------------------------------------------------------------------------------------- #> Sepal.Length | 5.84 | 0.83 | 1.30 | [4.30, 7.90] | 0.31 | -0.55 | 150 | 0 #> Sepal.Width | 3.06 | 0.44 | 0.52 | [2.00, 4.40] | 0.32 | 0.23 | 150 | 0 #> Petal.Length | 3.76 | 1.77 | 3.52 | [1.00, 6.90] | -0.27 | -1.40 | 150 | 0 #> Petal.Width | 1.20 | 0.76 | 1.50 | [0.10, 2.50] | -0.10 | -1.34 | 150 | 0
describe_distribution(iris, include_factors = TRUE, quartiles = TRUE)
#> Variable | Mean | SD | IQR | Range | Quartiles | Skewness | Kurtosis | n | n_Missing #> ------------------------------------------------------------------------------------------------------------ #> Sepal.Length | 5.84 | 0.83 | 1.30 | [4.3, 7.9] | 5.10, 6.40 | 0.31 | -0.55 | 150 | 0 #> Sepal.Width | 3.06 | 0.44 | 0.52 | [2, 4.4] | 2.80, 3.30 | 0.32 | 0.23 | 150 | 0 #> Petal.Length | 3.76 | 1.77 | 3.52 | [1, 6.9] | 1.60, 5.10 | -0.27 | -1.40 | 150 | 0 #> Petal.Width | 1.20 | 0.76 | 1.50 | [0.1, 2.5] | 0.30, 1.80 | -0.10 | -1.34 | 150 | 0 #> Species | | | | [setosa, virginica] | | 0.00 | -1.51 | 150 | 0