| assess_normality | R Documentation |
Assess normality of traits in a data frame.
assess_normality( raw_data, excluded_columns, cpus = 1, out_prefix = "metapipe", plots_dir = tempdir(), transf_vals = c(2, exp(1), 3, 4, 5, 6, 7, 8, 9, 10), alpha = 0.05, pareto_scaling = FALSE, show_stats = TRUE )
raw_data |
Data frame containing the raw data. |
excluded_columns |
Numeric vector containing the indices of the dataset properties that are non-numeric, excluded columns. |
cpus |
Number of CPUs to be used in the computation. |
out_prefix |
Prefix for output files and plots. |
plots_dir |
Path to the directory where plots should be stored. |
transf_vals |
Numeric vector with the transformation values. |
alpha |
Significance level. |
pareto_scaling |
Boolean flag to indicate whether or not perform a Pareto scaling on the normalised data. |
show_stats |
Boolean flag to indicate whether or not to show the normality assessment statistics (how many traits are normal, how many were transformed/normalised, and which transformations were applied). |
The normality of each trait is assessed using a Shapiro-Wilk test, under the following hypotheses:
H_0: the sample comes from a normally distributed population.
H_1: the sample does not come from a normally distributed population.
Using a significance level of α = 0.05. If the conclusion is that
the sample does not come from a normally distributed population, then a
number of transformations are performed, based on the transformation values
passed with transf_vals. By default, the following transformation
values are used a = c(2, exp(1), 3, 4, 5, 6, 7, 8, 9, 10) with the
logarithmic (log_a(x)), power (x^a), and
radical/root (x^(1/a)) functions.
List of data frames for the normal (norm) and skewed
(skew) traits.
# Toy dataset
example_data <- data.frame(ID = c(1,2,3,4,5),
P1 = c("one", "two", "three", "four", "five"),
T1 = rnorm(5),
T2 = rnorm(5))
example_data_normalised <- MetaPipe::assess_normality(example_data, c(1, 2))
example_data_norm <- example_data_normalised$norm
example_data_skew <- example_data_normalised$skew
# Normal traits
knitr::kable(example_data_norm)
# Skewed traits (empty)
# knitr::kable(example_data_skew)
# F1 Seedling Ionomics dataset
data(ionomics) # Includes some missing data
ionomics_rev <- MetaPipe::replace_missing(ionomics,
excluded_columns = c(1, 2),
replace_na = TRUE)
ionomics_normalised <-
MetaPipe::assess_normality(ionomics_rev,
excluded_columns = c(1, 2),
out_prefix = "ionomics",
transf_vals = c(2, exp(1)))
ionomics_norm <- ionomics_normalised$norm
ionomics_skew <- ionomics_normalised$skew
# Normal traits
knitr::kable(ionomics_norm[1:5, ])
# Skewed traits (partial output)
knitr::kable(ionomics_skew[1:5, 1:8])
# Clean up example outputs
MetaPipe:::tidy_up(c("HIST_", "ionomics_", "metapipe_"))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.