calc_group_stat {metacoder} | R Documentation |
Apply a function to groups of columns
Description
For a given table in a taxmap
object, apply a function to
rows in groups of columns. The result of the function is used to create new
columns. This is equivalent to splitting columns of a table by a factor and
using apply
on each group.
Usage
calc_group_stat(
obj,
data,
func,
groups = NULL,
cols = NULL,
other_cols = FALSE,
out_names = NULL,
dataset = NULL
)
Arguments
obj |
A |
data |
The name of a table in |
func |
The function to apply. It should take a vector and return a
single value. For example, |
groups |
Group multiple columns per treatment/group. This should be a
vector of group IDs (e.g. character, integer) the same length as
|
cols |
The columns in
|
other_cols |
Preserve in the output non-target columns present in the input data. New columns will always be on the end. The "taxon_id" column will be preserved in the front. Takes one of the following inputs:
|
out_names |
The names of count columns in the output. Must be the same
length and order as |
dataset |
DEPRECIATED. use "data" instead. |
Value
A tibble
See Also
Other calculations:
calc_diff_abund_deseq2()
,
calc_group_mean()
,
calc_group_median()
,
calc_group_rsd()
,
calc_n_samples()
,
calc_obs_props()
,
calc_prop_samples()
,
calc_taxon_abund()
,
compare_groups()
,
counts_to_presence()
,
rarefy_obs()
,
zero_low_counts()
Examples
## Not run:
# Parse data for examples
x = parse_tax_data(hmp_otus, class_cols = "lineage", class_sep = ";",
class_key = c(tax_rank = "taxon_rank", tax_name = "taxon_name"),
class_regex = "^(.+)__(.+)$")
# Apply a function to every value without grouping
calc_group_stat(x, "tax_data", function(v) v > 3)
# Calculate the means for each group
calc_group_stat(x, "tax_data", mean, groups = hmp_samples$sex)
# Calculate the variation for each group
calc_group_stat(x, "tax_data", sd, groups = hmp_samples$body_site)
# Different ways to use only some columns
calc_group_stat(x, "tax_data", function(v) v > 3,
cols = c("700035949", "700097855", "700100489"))
calc_group_stat(x, "tax_data", function(v) v > 3,
cols = 4:6)
calc_group_stat(x, "tax_data", function(v) v > 3,
cols = startsWith(colnames(x$data$tax_data), "70001"))
# Including all other columns in ouput
calc_group_stat(x, "tax_data", mean, groups = hmp_samples$sex,
other_cols = TRUE)
# Inlcuding specific columns in output
calc_group_stat(x, "tax_data", mean, groups = hmp_samples$sex,
other_cols = 2)
calc_group_stat(x, "tax_data", mean, groups = hmp_samples$sex,
other_cols = "otu_id")
# Rename output columns
calc_group_stat(x, "tax_data", mean, groups = hmp_samples$sex,
out_names = c("Women", "Men"))
## End(Not run)