Title: | Create Tables for Reporting Clinical Trials |
---|---|
Description: | Create Tables for Reporting Clinical Trials. Calculates descriptive statistics and hypothesis tests, arranges the results in a table ready for reporting with LaTeX, HTML or Word. |
Authors: | Armin Ströbel [aut, cre] , Alan Haynes [aut] |
Maintainer: | Armin Ströbel <[email protected]> |
License: | GPL-3 |
Version: | 0.1.10 |
Built: | 2024-10-25 04:18:01 UTC |
Source: | https://github.com/arminstroebel/atable |
The new column has name atable_options('colname_for_observations')
and class 'count_me'
.
add_observation_column(DD)
add_observation_column(DD)
DD |
A data.frame. |
Throws an error if a column of that name is already present in DD
.
As DD now with one more column.
Applies descriptive statistics and hypothesis tests to data, and arranges the results for printing.
atable(x, ...) ## S3 method for class 'data.frame' atable( x, target_cols, group_col = NULL, split_cols = NULL, format_to = atable_options("format_to"), drop_levels = TRUE, add_levels_for_NA = FALSE, blocks = NULL, add_margins = atable_options("add_margins"), indent_character = NULL, indent = atable_options("indent"), ... ) ## S3 method for class 'formula' atable(formula, data, ...)
atable(x, ...) ## S3 method for class 'data.frame' atable( x, target_cols, group_col = NULL, split_cols = NULL, format_to = atable_options("format_to"), drop_levels = TRUE, add_levels_for_NA = FALSE, blocks = NULL, add_margins = atable_options("add_margins"), indent_character = NULL, indent = atable_options("indent"), ... ) ## S3 method for class 'formula' atable(formula, data, ...)
x |
An object. If |
... |
Passed from and to other methods. You can use the ellipsis ... to modify atable:
For example the default-statistics for numeric variables are mean and sd. To change these statistics pass
a function to argument See examples below how to modify atable by ... . Actually Here is a list of the statistics and hypothesis tests that can be modified by
|
target_cols |
A character vector containing some column names of Descriptive statistics and hypothesis test are applied to these columns depending on their class.
The descriptive statistics are defined by Hypothesis test are defined by |
group_col |
A character of length 1 containing a column of |
split_cols |
A character vector containing some of |
format_to |
A character vector of length 1. Specifies the format of the output of |
drop_levels |
A logical. If |
add_levels_for_NA |
If |
blocks |
|
add_margins |
A logical with length one, |
indent_character |
A character with length 1 or |
indent |
A logical with length one, |
formula |
A formula of the form |
data |
Passed to |
Results depend on format_to
:
'Raw'
: A list with two elemtents called 'statistics_result'
and 'tests_result'
, that
contain all results of the descriptve statistics and the hypothesis tests.
This format useful, when extracting a specific result unformated
(when format_to
is not 'Raw'
all numbers are also returned, but as rounded
characters for printing and squeezed into a data.frame).
'statistics_result'
: contains a data.frame with colnames c(split_cols, group_col, target_cols
.
split_cols
and group_col
retain their original values (now as factor).
target_cols
contain lists with the results of function statistics
.
As the result of function statistics
is also a list, target_cols
contain lists of lists.
'tests_result'
: has the same structure as 'statistics_result'
, but contains the results
of two_sample_htest
and multi_sample_htest
.
Note that tests_result
only exists if split_cols
is not NULL
.
'Word'
: A data.frame.
Column atable_options('colname_for_group')
contains
all combinations of the levels of split_cols
and
the names of the results of function format_statistics
.
Further columns are the levels of group_col
the names of the results of format_tests
.
The levels of split_cols
and the statistics are arranged vertically.
The hypothesis test are arranged horizontally.
'HTML'
: Same as for format_to = 'Word'
but a different character indents
the first column.
#'
'Console'
: Meant for printing in the R console for interactive analysis.
Same as for format_to = 'Word'
but a different character indents the first column.
'Latex'
: Same as for format_to = 'Word'
but a different character indents
the first column and with translate_to_LaTeX
applied afterwards.
data.frame
: applies descriptive statistics and hypothesis tests, arranges the results for printing.
formula
: parses the formula and passes its parts to atable
.
# See vignette for more examples: # utils::vignette('atable_usage', package = 'atable') # Analyse datasets::ToothGrowth: # Length of tooth for each dose level and delivery method: atable::atable(datasets::ToothGrowth, target_cols = 'len', group_col = 'supp', split_cols = 'dose', format_to = 'Word') # Print in .docx with e.g. flextable::regulartable and officer::body_add_table # Analyse datasets::ChickWeight: # Weight of chickens for each time point and diet: atable(weight ~ Diet | Time, datasets::ChickWeight, format_to = 'Latex') # Print as .pdf with e.g. Hmisc::latex # Analyse atable::test_data: atable(Numeric + Logical + Factor + Ordered ~ Group | Split1 + Split2, atable::test_data, format_to = 'HTML') # Print as .html with e.g. knitr::kable and options(knitr.kable.NA = '') # Modify atable: calculate median and MAD for numeric variables new_stats <- function(x, ...){list(Median = median(x, na.rm = TRUE), MAD = mad(x, na.rm = TRUE))} atable(atable::test_data, target_cols = c('Numeric', 'Numeric2'), statistics.numeric = new_stats, format_to = 'Console') # Print in Console with format_to = 'Console'. # Analyse mtcars and add labels and units of via package Hmisc mtcars <- within(datasets::mtcars, {gear <- factor(gear)}) # Add labels and units. attr(mtcars$mpg, 'alias') = 'Consumption [Miles (US)/ gallon]' Hmisc::label(mtcars$qsec) = 'Quarter Mile Time' units(mtcars$qsec) = 's' # apply atable atable::atable(mpg + hp + gear + qsec ~ cyl | vs, mtcars, format_to = 'Console') # Blocks # In datasets::mtcars the variables cyl, disp and mpg are related to the engine and am and gear are # related to the gearbox. So grouping them together is desireable. atable::atable(datasets::mtcars, target_cols = c("cyl", "disp", "hp", "am", "gear", "qsec") , blocks = list("Engine" = c("cyl", "disp", "hp"), "Gearbox" = c("am", "gear")), format_to = "Console") # Note that Variable qsec is not blocked and thus not indented. # add_margins atable::atable(atable::test_data, target_cols = "Numeric", group_col = "Group", split_cols = "Split1", add_margins = TRUE, format_to = "Console") # The column 'Total' contains the results of the ungrouped atable-call: # The number of observations is the sum of observations of the groups. # The default of add_margins can be changed via atable_options.
# See vignette for more examples: # utils::vignette('atable_usage', package = 'atable') # Analyse datasets::ToothGrowth: # Length of tooth for each dose level and delivery method: atable::atable(datasets::ToothGrowth, target_cols = 'len', group_col = 'supp', split_cols = 'dose', format_to = 'Word') # Print in .docx with e.g. flextable::regulartable and officer::body_add_table # Analyse datasets::ChickWeight: # Weight of chickens for each time point and diet: atable(weight ~ Diet | Time, datasets::ChickWeight, format_to = 'Latex') # Print as .pdf with e.g. Hmisc::latex # Analyse atable::test_data: atable(Numeric + Logical + Factor + Ordered ~ Group | Split1 + Split2, atable::test_data, format_to = 'HTML') # Print as .html with e.g. knitr::kable and options(knitr.kable.NA = '') # Modify atable: calculate median and MAD for numeric variables new_stats <- function(x, ...){list(Median = median(x, na.rm = TRUE), MAD = mad(x, na.rm = TRUE))} atable(atable::test_data, target_cols = c('Numeric', 'Numeric2'), statistics.numeric = new_stats, format_to = 'Console') # Print in Console with format_to = 'Console'. # Analyse mtcars and add labels and units of via package Hmisc mtcars <- within(datasets::mtcars, {gear <- factor(gear)}) # Add labels and units. attr(mtcars$mpg, 'alias') = 'Consumption [Miles (US)/ gallon]' Hmisc::label(mtcars$qsec) = 'Quarter Mile Time' units(mtcars$qsec) = 's' # apply atable atable::atable(mpg + hp + gear + qsec ~ cyl | vs, mtcars, format_to = 'Console') # Blocks # In datasets::mtcars the variables cyl, disp and mpg are related to the engine and am and gear are # related to the gearbox. So grouping them together is desireable. atable::atable(datasets::mtcars, target_cols = c("cyl", "disp", "hp", "am", "gear", "qsec") , blocks = list("Engine" = c("cyl", "disp", "hp"), "Gearbox" = c("am", "gear")), format_to = "Console") # Note that Variable qsec is not blocked and thus not indented. # add_margins atable::atable(atable::test_data, target_cols = "Numeric", group_col = "Group", split_cols = "Split1", add_margins = TRUE, format_to = "Console") # The column 'Total' contains the results of the ungrouped atable-call: # The number of observations is the sum of observations of the groups. # The default of add_margins can be changed via atable_options.
This is a wrapper for atable(), calculating the same statistics, but with different format.
atable_compact(x, ...) ## S3 method for class 'data.frame' atable_compact( x, target_cols, group_col = NULL, indent_character = atable_options("indent_character_compact"), blocks = NULL, format_factor = atable_options("format_statistics_compact.statistics_factor"), format_numeric = atable_options("format_statistics_compact.statistics_numeric"), ... )
atable_compact(x, ...) ## S3 method for class 'data.frame' atable_compact( x, target_cols, group_col = NULL, indent_character = atable_options("indent_character_compact"), blocks = NULL, format_factor = atable_options("format_statistics_compact.statistics_factor"), format_numeric = atable_options("format_statistics_compact.statistics_numeric"), ... )
x |
object passed to atable. |
... |
Passed to |
target_cols |
character. Some of colnames(x). |
group_col |
character or NULL. If character then, one of colnames(x). |
indent_character |
character length 1. Default is defined in table_options("indent_character_compact").
For Latex-Format use e.g. |
blocks |
NULL or a list, passed to atable, see help there. |
format_factor |
a function that defines the format of factor variables.
Default is defined in |
format_numeric |
a function that defines the format of numeric variables. Analog to format_factor. |
The compact formatting is:
Numeric target_cols get one line in the table; the line contains the mean and SD of the variable.
Factor target_cols also get one line in the table, when they have only two levels and only the first level is displayed in the table and the name of the variable is omitted. This is intended for item like "Sex at birth: Female/Male". Knowing the percentage of Female is sufficient in this case (when NAs are not counted). Be careful with items like "Pregnant: Yes/No". Here only the level "Yes" will be printed and the name of the item (Pregnant) is omitted, making the table uninformative. Factors with three or more levels get one line per level, the levels are intended and a header line containing the name of the variable is added.
Arguments in ... are passed to atable
. See the help there.
atable_compact
is not designed for splitted atables, so argument split_cols
must be omitted or NULL.
Also argument format_to
is ignored.
Other features of atable (blocking, add_margins, alias) are available, see examples.
data.frame
data.frame
: a compact version of atable.
# For Console: atable_compact( atable::test_data, target_cols = c("Numeric", "Numeric2", "Split2", "Factor", "Ordered"), group_col = "Group2", blocks = list("Primary Endpoint" = "Numeric", "Secondary Endpoints" = c("Numeric2", "Split2", "Factor")), add_margins = TRUE) # The target_cols are "Numeric", "Numeric2", "Split2", "Factor", "Ordered". # The group_col is "Group2". # The data.frame is grouped by group_col and the summary statistcs of the target_cols are # calculated: mean, sd for numeric, counts and percentages for factors. # Some target_cols are blocked: the first block 'Primary Endpoint' contains the variable Numeric. # The second block 'Secondary Endpoint' contains the variables "Numeric2", "Split2", "Factor". # The blocks are intended. # For variable Split2 only the first level is reported, as the variable has only two levels and # the name 'Split2' does not appear in the table. # The variable Factor has more than two levels, so all of them are # reported and appropriately intended. # The variable Ordered is not part of a block and thus not intended. # For Latex: # Same as for Console, but with different indent_character: tab = atable_compact(atable::test_data, target_cols = c("Numeric", "Numeric2", "Logical", "Factor", "Ordered"), group_col = "Group2", indent_character = "\\quad") tab = atable::translate_to_LaTeX(tab) # Then call e.g. Hmisc::latex(tab, ...) # Example for Word format: ## Not run: tab = atable_compact( atable::test_data, target_cols = c("Numeric", "Numeric2", "Split2", "Factor", "Ordered", "Character"), group_col = "Group2", blocks = list("Primary Endpoint" = "Numeric", "Secondary Endpoints" = c("Numeric2", "Split2", "Factor")), add_margins = TRUE, indent_character = paste0(rep(intToUtf8(160), 5), collapse = "")) # The argument indent_character has the value intToUtf8(160) (non breakable space). # This is the important part: # Spaces at the beginning of a cell of a data.frame are somehow lost on the way to the docx. # Other indent_characters may also do the job. # doc = officer::read_docx() # doc = officer::body_add_table(doc,tab) # print(doc, target = "atable_Word.docx") # Other packages may exist for Word-export. ## End(Not run)
# For Console: atable_compact( atable::test_data, target_cols = c("Numeric", "Numeric2", "Split2", "Factor", "Ordered"), group_col = "Group2", blocks = list("Primary Endpoint" = "Numeric", "Secondary Endpoints" = c("Numeric2", "Split2", "Factor")), add_margins = TRUE) # The target_cols are "Numeric", "Numeric2", "Split2", "Factor", "Ordered". # The group_col is "Group2". # The data.frame is grouped by group_col and the summary statistcs of the target_cols are # calculated: mean, sd for numeric, counts and percentages for factors. # Some target_cols are blocked: the first block 'Primary Endpoint' contains the variable Numeric. # The second block 'Secondary Endpoint' contains the variables "Numeric2", "Split2", "Factor". # The blocks are intended. # For variable Split2 only the first level is reported, as the variable has only two levels and # the name 'Split2' does not appear in the table. # The variable Factor has more than two levels, so all of them are # reported and appropriately intended. # The variable Ordered is not part of a block and thus not intended. # For Latex: # Same as for Console, but with different indent_character: tab = atable_compact(atable::test_data, target_cols = c("Numeric", "Numeric2", "Logical", "Factor", "Ordered"), group_col = "Group2", indent_character = "\\quad") tab = atable::translate_to_LaTeX(tab) # Then call e.g. Hmisc::latex(tab, ...) # Example for Word format: ## Not run: tab = atable_compact( atable::test_data, target_cols = c("Numeric", "Numeric2", "Split2", "Factor", "Ordered", "Character"), group_col = "Group2", blocks = list("Primary Endpoint" = "Numeric", "Secondary Endpoints" = c("Numeric2", "Split2", "Factor")), add_margins = TRUE, indent_character = paste0(rep(intToUtf8(160), 5), collapse = "")) # The argument indent_character has the value intToUtf8(160) (non breakable space). # This is the important part: # Spaces at the beginning of a cell of a data.frame are somehow lost on the way to the docx. # Other indent_characters may also do the job. # doc = officer::read_docx() # doc = officer::body_add_table(doc,tab) # print(doc, target = "atable_Word.docx") # Other packages may exist for Word-export. ## End(Not run)
This is a wrapper for atable(), calculating the same statistics, but with different format.
atable_longitudinal(x, ...) ## S3 method for class 'data.frame' atable_longitudinal( x, target_cols, split_cols, group_col = NULL, format_numeric = atable_options("format_statistics_longitudinal.statistics_numeric"), format_factor = atable_options("format_statistics_longitudinal.statistics_factor"), ... )
atable_longitudinal(x, ...) ## S3 method for class 'data.frame' atable_longitudinal( x, target_cols, split_cols, group_col = NULL, format_numeric = atable_options("format_statistics_longitudinal.statistics_numeric"), format_factor = atable_options("format_statistics_longitudinal.statistics_factor"), ... )
x |
object passed to atable. Currently x must be a data.frame. |
... |
Passed to |
target_cols |
character. Exactly one of colnames(x). |
split_cols |
character. Exactly one of colnames(x). |
group_col |
character or NULL. If character then, one of colnames(x). |
format_numeric |
a function that defines the format of numeric variables. Analog to format_factor. |
format_factor |
a function that defines the format of factor variables.
Default is defined in |
The intention is to report longitudinal data, i.e. data measured on the same objects on multiple times points.
This function allows only one target_col and only one split_col (the time point of the measurement).
The longitudinal formatting is:
The names of the target_col and split_col do not show up in the table. The names should thus be written in the caption of the table.
Numeric target_cols get one line in the table; the format of the statistics is: mean (sd), N, missing.
Factor target_cols also get one line in the table, when it has only two levels and only the first level is displayed in the table and the name of the variable is omitted. This is intended for item like "Sex at birth: Female/Male". Knowing the percentage of Female is sufficient in this case (when NAs are not counted). The name of the target_cols and its first level should be stated in the caption of the table, otherwise the table is uninformative. The format of the statistics is: percent
Factors with three or more levels get one line per level and the name of the variable is omitted. The format of the statistics is: percent
Argument block must omitted, as there is only one target_col and nothing to block.
See examples.
data.frame
data.frame
: a longitudinal version of atable.
# create data with a time-variable x = atable::test_data set.seed(42) x = within(x, {time = sample(paste0("time_", 1:5), size=nrow(x), replace = TRUE)}) split_cols = "time" group_col = "Group2" # table for a factor with two levels atable_longitudinal(x, target_cols = "Split2", group_col = group_col, split_cols = split_cols, add_margins = TRUE) # table for a factor with three levels atable_longitudinal(x, target_cols = "Split1", group_col = group_col, split_cols = split_cols, add_margins = TRUE) # table for a numeric variable atable_longitudinal(x, target_cols = "Numeric", group_col = group_col, split_cols = split_cols, add_margins = TRUE) # To print the table in Word or with Latex, use # e.g. \link[Hmisc]{latex} or \link[officer]{body_add_table}. # No further modification of the table is needed. # See \code{\link{atable_compact}} for examples.
# create data with a time-variable x = atable::test_data set.seed(42) x = within(x, {time = sample(paste0("time_", 1:5), size=nrow(x), replace = TRUE)}) split_cols = "time" group_col = "Group2" # table for a factor with two levels atable_longitudinal(x, target_cols = "Split2", group_col = group_col, split_cols = split_cols, add_margins = TRUE) # table for a factor with three levels atable_longitudinal(x, target_cols = "Split1", group_col = group_col, split_cols = split_cols, add_margins = TRUE) # table for a numeric variable atable_longitudinal(x, target_cols = "Numeric", group_col = group_col, split_cols = split_cols, add_margins = TRUE) # To print the table in Word or with Latex, use # e.g. \link[Hmisc]{latex} or \link[officer]{body_add_table}. # No further modification of the table is needed. # See \code{\link{atable_compact}} for examples.
Set or get options for the atable-package via the settings
package.
atable_options(...)
atable_options(...)
... |
Option names to retrieve option values or |
These options control some aspects of the atable package.
For restoring the default values see atable_options_reset
.
The following options are supported:
add_margins
: A logical with length 1, TRUE of FALSE. This is the default-value of atable's
argument add_margins
. See the help there.
colname_for_total
: A character with length 1. Default is 'Total'
. This character will show up
in the results of atable
when add_margins
is TRUE
and group_col
is not NULL
.
replace_NA_by
: A character with length 1, or NULL
. Default is 'missing'
.
Used in function replace_NA
. This character will show up in the results of atable
,
so it can be modified.
colname_for_variable
: A character with length 1. Default is 'variable___'
.
Used in function add_name_to_tests
and add_name_to_statistics
.
This character will not show up in the results and is only used internally for intermediate data.frames.
There may be name clashes with user-supplied data.frames; so modification may be necessary.
colname_for_observations
: A character with length 1. Default is 'Observations'
.
Used in function add_observation_column
.
This character will show up in the results of atable
, so it can be modified.
There may be name clashes with user-supplied data.frames; so modification may be necessary.
colname_for_blocks
: A character with length 1. Default is 'block_name___'
.
Used in function indent_data_frame_with_blocks
.
This character will not show up in the results and is only used internally for intermediate data.frames.
There may be name clashes with user-supplied data.frames; so modification may be necessary.
labels_TRUE_FALSE
: A character of length 2. Default is c('yes', 'no')
.
Currently used in function statistics.logical
(see statistics
) to cast logical to factor.
TRUE
is mapped to labels_TRUE_FALSE[1]
and FALSE
to labels_TRUE_FALSE[2]
.
This characters may show up in the results of atable
, so it can be modified.
labels_Mean_SD
: A character length 1. Default is 'Mean (SD)'
.
Currently used in function format_statistics
as a name for the mean and standard deviation of
numeric variables. This character may show up in the results of atable
, so it can be modified.
labels_valid_missing
: A character length 1. Default is 'valid (missing)'
.
Currently used in function format_statistics
as a name for the number of valid and missing values
of numeric variables. This character may show up in the results of atable
, so it can be modified.
format_to
: A character length 1. Default is 'Latex'
.
Currently used in function atable
.
colname_for_group
: A character of length 1. Default is 'Group'
.
This character will show up in the results of atable
.
This column will contain all values of DD[split_cols]
and DD[target_cols]
.
colname_for_value
: A character of length 1. Default is 'value'
.
This character shows up in the results of atable
when group_col
is NULL
.
The column will contain the results of the statistics
.
colname_for_variable_compact
: A character of length 1. Default is intToUtf8(160)
, a non-breaking space.
This character will show up in the results of atable_compact
as name of the first column.
statistics.numeric
: Either NULL
or a function. Default is NULL
.
If a function, then it will replace atable:::statistics.numeric
when atable is called.
The function must mimic statistics
: see the help there.
statistics.factor
: Analog to argument statistics.numeric.
statistics.ordered
: Analog to argument statistics.numeric.
two_sample_htest.numeric
: Either NULL
or a function. Default is NULL
.
If a function, then it will replace atable:::two_sample_htest.numeric
when atable is called.
The function must mimic two_sample_htest
: see the help there.
two_sample_htest.factor
: Analog to argument two_sample_htest.numeric
two_sample_htest.ordered
: Analog to argument two_sample_htest.numeric
multi_sample_htest.numeric
: Either NULL
or a function. Default is NULL
.
If a function, then it will replace atable:::multi_sample_htest.numeric
when atable is called.
The function must mimic multi_sample_htest
: see the help there.
multi_sample_htest.factor
: Analog to argument multi_sample_htest.numeric
multi_sample_htest.ordered
: Analog to argument multi_sample_htest.numeric
format_statistics.statistics_numeric
: Either NULL
or a function. Default is NULL
.
If a function, then it will replace atable:::format_statistics.statistics_numeric
.
The function must mimic format_statistics
: see the help there.
format_statistics.statistics_factor
: Analog to argument format_statistics.statistics_numeric
format_tests.htest
: Either NULL
or a function. Default is NULL
.
If a function, then it will replace format_tests.htest
.
The function must mimic format_tests
: arguments are x
and the ellipsis ... .
Result is a data.frame with 1 rows and unique colnames.
format_tests.htest_with_effect_size
: Analog to argument format_tests.htest
format_p_values
: A function with one argument returning a character with same length as the argument.
This functions is called by format_tests
to produce printable p-values.
format_percent
: A function with one argument returning a character with same length as the argument.
This functions is called by format_statistics
for factors to produce printable percentages.
format_numbers
: A function with one argument returning a character with same length as the argument.
This functions is called by format_statistics
and format_tests
for number,
that are not p-values or percentages.
digits
: 2. How many digits a number should have in the table.
Used by format_percent
and format_percent
and passed to format
.
get_alias.default
: A function with one argument x
and ...
returning a character or NULL
.
This functions is called by get_alias
and create_alias_mapping
to retrieve alternative Variable names to print
in the table.
get_alias.labelled
: A function with one argument x
and ...
, that must return a character.
This functions is called by get_alias
on the columns that have class labelled.
modifiy_colnames_without_alias
: A function with one argument x
and ...
returning a character.
This functions is called by create_alias_mapping
on the columns that have is.NULL(get_alias(x))
.
Replaces underscores by blanks and then calls trimws
.
indent_character
: A Character with length 1. Passed to indent_data_frame
. Every option of format_to
has a corresponding indent_character. See the help of atable
for these options.
indent_character_compact
: A Character with length 1. Passed to atable_compact
.
Value is " "
for viewing in the console. Use "\quad"
for Latex and intToUtf8(160)
for Word.
indent
: A logical with length 1. Passed to atable
. Controls, if indent_data_frame is called.
format_statistics_compact.statistics_factor
: A function with the same Properties as format_statistics
. Used as a
default value for atable_compact
format_statistics_compact.statistics_numeric
: A function with the same Properties as format_statistics
. Used as a
default value for atable_compact
format_statistics_longitudinal.statistics_factor
: A function with the same Properties as format_statistics
. Used as a
default value for atable_longitudinal
format_statistics_longitudinal.statistics_numeric
: A function with the same Properties as format_statistics
. Used as a
default value for atable_longitudinal
atable_options() # show all options atable_options('replace_NA_by' = 'no value') # set a new value atable_options('replace_NA_by') # return the new value
atable_options() # show all options atable_options('replace_NA_by' = 'no value') # set a new value atable_options('replace_NA_by') # return the new value
Does as the name implies. See also atable_options
.
atable_options_reset()
atable_options_reset()
atable_options('replace_NA_by') # show options atable_options('replace_NA_by' = 'foo bar') # set a new value atable_options('replace_NA_by') # show options atable_options_reset() # restore all defaults atable_options('replace_NA_by') # as before
atable_options('replace_NA_by') # show options atable_options('replace_NA_by' = 'foo bar') # set a new value atable_options('replace_NA_by') # show options atable_options_reset() # restore all defaults atable_options('replace_NA_by') # as before
The packages provides functions for descriptive statistics and hypothesis tests, and arranging the results for printing.
The main function is atable
. See documentation there.
Checks the output of function create_alias_mapping
.
check_alias_mapping(Alias_mapping)
check_alias_mapping(Alias_mapping)
Alias_mapping |
Result of function |
TRUE
if x
has the following properties:
Alias_mapping
is a non-empty data.frame with character columns 'old'
and 'new'
, without NA and "".
Column 'new'
has no duplicates.
Else throws an error. Prints the duplicates of column 'new'
, if available.
Checks the output of function format_statistics
.
check_format_statistics(x)
check_format_statistics(x)
x |
Result of function |
TRUE
if x
has the following properties:
x
is a non-empty data.frame with 2 columns called 'tag'
and 'value'
.
Column 'tag'
has class factor and no duplicates.
Column 'value'
is a character.
Else throws an error.
Checks the output of function format_tests
.
check_format_tests(x)
check_format_tests(x)
x |
Result of function |
TRUE
if x
has the following properties:
x
is a data.frame with exactly one row and with unique colnames. Else throws an error.
Checks the output of function statistics
.
check_statistics(x)
check_statistics(x)
x |
Result of function |
TRUE
if x
has the following properties:
x
is a named list with length > 0.
The names of the list must not have duplicates.
The names may contain NA. Else an error.
Checks the output of function two_sample_htest
and multi_sample_htest
.
check_tests(x)
check_tests(x)
x |
Result of function |
TRUE
if x
has the following properties:
x
is a named list with length > 0.
The names of the list must not have duplicates.
The names may contain NA. Else an error.
Most hypothesis-test-functions in R like t.test
or chisq.test
return an object of class htest.
This object passes this checks.
Additional fields can be added to these objects and they will still pass this check.
Column names of data.frame in atable must have syntactically valid colnames,
see is_syntactically_valid_name
.
So no blanks or special characters allowed.
But Reporting in human readable language needs special characters.
These functions here allow atable to handle arbitrary character for pretty printing.
create_alias_mapping(DD, ...)
create_alias_mapping(DD, ...)
DD |
A data.frame |
... |
Passed from and to other methods. |
We use attributes
here, to assign alternative names to columns.
Also class labelled
created by Hmisc's label
is supported.
See create_alias_mapping
for the function that does the actual work.
If no aliases are found, then underscores in the column names of DD
will be replaced by blanks.
See Examples in ?atable
.
create_alias_mapping
returns a data.frame with two columns old
and new
and
as many rows as DD
has columns. Column old
contains the original column names of
DD
and column new
their aliases.
The results of function statistics
must be formated before printing. format_statistics
does this.
format_statistics(x, ...) ## S3 method for class 'statistics_numeric' format_statistics(x, format_statistics.statistics_numeric = NULL, ...) ## S3 method for class 'statistics_factor' format_statistics(x, format_statistics.statistics_factor = NULL, ...) ## S3 method for class 'statistics_count_me' format_statistics(x, ...) ## Default S3 method: format_statistics(x, ...)
format_statistics(x, ...) ## S3 method for class 'statistics_numeric' format_statistics(x, format_statistics.statistics_numeric = NULL, ...) ## S3 method for class 'statistics_factor' format_statistics(x, format_statistics.statistics_factor = NULL, ...) ## S3 method for class 'statistics_count_me' format_statistics(x, ...) ## Default S3 method: format_statistics(x, ...)
x |
An object. |
... |
Passed from and to other methods. |
format_statistics.statistics_numeric |
Either |
format_statistics.statistics_factor |
Analog to argument format_statistics.statistics_numeric |
This function defines which statistics are printed in the final table and how they are formated.
The format depends on the class x
. See section methods.
If you are not pleased with the current format you may alter these functions.
But you must keep the original output-format, see section Value.
Function check_format_statistics
checks if the output of statistics is suitable for further processing.
A non-empty data.frame with 2 columns called 'tag'
and 'value'
.
Column 'tag'
has class factor and no duplicates.
Column 'value'
is a character.
See also function check_format_statistics
.
statistics_numeric
: Defines how to format class statistics_numeric
.
Returns a data.frame with 2 rows.
Column 'tag'
contains 'Mean_SD'
and 'valid_missing'
.
Column 'value'
contains two values: first value is the rounded mean and standard deviation, pasted them together. The standard deviation is bracketed.
Second value is the number of non-missing and missing values pasted together. The number of missing values is bracketed.
statistics_factor
: Defines how to format class statistics_factor
.
Returns a data.frame.
Column 'tag'
contains all names of x
.
Column 'value'
contains the percentages and the total number of values in brackets.
statistics_count_me
: Defines how to format class statistics_count_me
.
Returns a data.frame.
Column 'tag'
contains the empty character ''
.
The empty character is choosen because colname_for_observations
already appears in the final table.
Column 'value'
contains the number of observations.
See also 'colname_for_observations'
in atable_options
.
default
: Returns a data.frame.
Column 'tag'
contains all names of x
.
Column 'value'
contains all elements of x
, rounded by format
.
The results of function two_sample_htest
and multi_sample_htest
must be formated before printing. format_tests
does this.
format_tests(x, ...) ## S3 method for class 'htest' format_tests(x, format_tests.htest = NULL, ...) ## S3 method for class 'htest_with_effect_size' format_tests(x, format_tests.htest_with_effect_size = NULL, ...) ## Default S3 method: format_tests(x, ...)
format_tests(x, ...) ## S3 method for class 'htest' format_tests(x, format_tests.htest = NULL, ...) ## S3 method for class 'htest_with_effect_size' format_tests(x, format_tests.htest_with_effect_size = NULL, ...) ## Default S3 method: format_tests(x, ...)
x |
An object. |
... |
Passed from and to other methods. |
format_tests.htest |
Either |
format_tests.htest_with_effect_size |
Analog to argument format_tests.htest |
This function defines which test results are printed in the final table and how they are formated.
The format depends on the class x
. See section methods.
If you are not pleased with the current format you may alter these functions.
But you must keep the original output-format, see section Value.
Function check_format_tests
checks if the output of format_tests
is suitable for further processing.
A non-empty data.frame with one row.
See also function check_format_tests
.
htest
: Defines how to format class htest
.
Returns a data.frame with 1 rows. Column p
contains the p-value of the x
.
htest_with_effect_size
: Defines how to format class htest_with_effect_size
.
Returns a data.frame with 1 rows. Column p
contains the p-value of the x
.
Column stat
contains the teststatistic.
Column Effect Size (CI)
contains a effect size and its 95% Confidence interval.
default
: Tries to cast to data.frame with one row. Uses the names of the list as colnames.
Retrieves attributes label
and units
of class labelled and attribute alias
otherwise.
get_alias(x, ...) ## S3 method for class 'labelled' get_alias(x, ...) ## Default S3 method: get_alias(x, ...) ## S3 method for class 'data.frame' get_alias(x, ...) ## S3 method for class 'list' get_alias(x, ...)
get_alias(x, ...) ## S3 method for class 'labelled' get_alias(x, ...) ## Default S3 method: get_alias(x, ...) ## S3 method for class 'data.frame' get_alias(x, ...) ## S3 method for class 'list' get_alias(x, ...)
x |
An object. Aliases will be retrieved of |
... |
Passed from and to other methods. |
We use attributes
here, to assign alternative names to columns.
Also class labelled
created by Hmisc's label
is supported.
This is a workhorse function, see create_alias_mapping
for the high level function
For atomic vectors a character of NULL
; for non-atomic vectors the results of get_alias
applied to its elements.
labelled
: Retrieve attributes label
and units
, if available.
Units are bracketed by '[]'. See also label
and units
.
The user may alter this method via atable_options
, see help there.
default
: Retrieve attribute alias
via attr
.
This attribute may be an arbitrary character.
If there is no attribute alias
, then get_alias.default
returns NULL
.
data.frame
: Calls get_alias
on every column.
list
: Calls get_alias
on every element of the list.
Indents data.frames for printing them as tables.
indent_data_frame( DD, keys, values = setdiff(colnames(DD), keys), character_empty = "", numeric_empty = NA, indent_character = "\\quad", colname_indent = "Group" )
indent_data_frame( DD, keys, values = setdiff(colnames(DD), keys), character_empty = "", numeric_empty = NA, indent_character = "\\quad", colname_indent = "Group" )
DD |
A data.frame. Should be sorted by |
keys |
A character. Subset of |
values |
A character. Subset of colnames(DD). DD[keys] must be class character, factor or numeric. |
character_empty |
A character. Default ”. This character will be put in the new lines in class character columns. |
numeric_empty |
A numeric. Default NA. This character will be put in the new lines in class numeric columns. |
indent_character |
A character. character for one indent. Default is '\quad' (meant for latex). Can also be ' ' for Word. |
colname_indent |
A character. Default 'Group'. Name of the new column with the indented keys. |
Squeeze multiple key-columns into one column and indents the values accordingly.
Adds new lines with the indented keys to the data.frame.
Meant for wide tables that need to be narrower and more 'readable'
Meant for plotting with e.g. xtable::xtable or Hmisc::latex or officer::body_add_table.
Look at the examples for a more precise description.
Meant for left-aligned columns. Thats why the indent_character
is inserted
to the left of the original values.
A data.frame. Columns: c(colname_indent, values)
.
Column colname_indent
contains all combination of DD[keys]
, but now indented and squeezed in this column and casted to character.
Columns 'values'
contain all values of DD[values]
unchanged.
Number of rows is sum(cumprod(nlevels(DD[keys])))
.
DD <- expand.grid(Arm = paste0('Arm ', c(1,2,4)), Gender = c('Male', 'Female'), Haircolor = c('Red', 'Green', 'Blue'), Income = c('Low', 'Med', 'High'), stringsAsFactors = TRUE) DD <- doBy::orderBy(~ Arm + Gender + Haircolor + Income, DD) DD$values1 <- runif(dim(DD)[1]) DD$values2 <- 1 DD$values3 <- sample(letters[1:4], size = nrow(DD), replace = TRUE) keys = c('Arm', 'Gender', 'Haircolor', 'Income') values = c('values1', 'values2', 'values3') ## Not run: DDD <- indent_data_frame(DD, keys, indent_character = ' ') # print both: Hmisc::latex(DD, file = '', longtable = TRUE, caption = 'Original table', rowname = NULL) Hmisc::latex(DDD, file = '', longtable = TRUE, caption = 'Indented table', rowname = NULL) ## End(Not run)
DD <- expand.grid(Arm = paste0('Arm ', c(1,2,4)), Gender = c('Male', 'Female'), Haircolor = c('Red', 'Green', 'Blue'), Income = c('Low', 'Med', 'High'), stringsAsFactors = TRUE) DD <- doBy::orderBy(~ Arm + Gender + Haircolor + Income, DD) DD$values1 <- runif(dim(DD)[1]) DD$values2 <- 1 DD$values3 <- sample(letters[1:4], size = nrow(DD), replace = TRUE) keys = c('Arm', 'Gender', 'Haircolor', 'Income') values = c('values1', 'values2', 'values3') ## Not run: DDD <- indent_data_frame(DD, keys, indent_character = ' ') # print both: Hmisc::latex(DD, file = '', longtable = TRUE, caption = 'Original table', rowname = NULL) Hmisc::latex(DDD, file = '', longtable = TRUE, caption = 'Indented table', rowname = NULL) ## End(Not run)
Checks for valid names by make.names
,
i.e. x
is valid iff make.names
does nothing with x
.
is_syntactically_valid_name(x)
is_syntactically_valid_name(x)
x |
An object. |
A logical with length 1. TRUE
when x
is a character with length > 0 without duplicates
and is valid. Else FALSE
and a warning what's wrong.
x <- c('asdf', NA,'.na', '<y', 'asdf', 'asdf.1') is_syntactically_valid_name(x) is_syntactically_valid_name(x[FALSE]) # FALSE because empty is_syntactically_valid_name(NA) # FALSE because not character is_syntactically_valid_name(as.character(NA)) # FALSE because NA is_syntactically_valid_name('NA') # FALSE. make.names changes 'NA' to 'NA.' is_syntactically_valid_name(letters) # TRUE
x <- c('asdf', NA,'.na', '<y', 'asdf', 'asdf.1') is_syntactically_valid_name(x) is_syntactically_valid_name(x[FALSE]) # FALSE because empty is_syntactically_valid_name(NA) # FALSE because not character is_syntactically_valid_name(as.character(NA)) # FALSE because NA is_syntactically_valid_name('NA') # FALSE. make.names changes 'NA' to 'NA.' is_syntactically_valid_name(letters) # TRUE
Calculates multi sample hypothesis tests depending on the class of its input.
multi_sample_htest(value, group, ...) ## S3 method for class 'logical' multi_sample_htest(value, group, ...) ## S3 method for class 'factor' multi_sample_htest(value, group, multi_sample_htest.factor = NULL, ...) ## S3 method for class 'character' multi_sample_htest(value, group, ...) ## S3 method for class 'ordered' multi_sample_htest(value, group, multi_sample_htest.ordered = NULL, ...) ## S3 method for class 'numeric' multi_sample_htest(value, group, multi_sample_htest.numeric = NULL, ...)
multi_sample_htest(value, group, ...) ## S3 method for class 'logical' multi_sample_htest(value, group, ...) ## S3 method for class 'factor' multi_sample_htest(value, group, multi_sample_htest.factor = NULL, ...) ## S3 method for class 'character' multi_sample_htest(value, group, ...) ## S3 method for class 'ordered' multi_sample_htest(value, group, multi_sample_htest.ordered = NULL, ...) ## S3 method for class 'numeric' multi_sample_htest(value, group, multi_sample_htest.numeric = NULL, ...)
value |
An atomic vector. |
group |
A factor, same length as |
... |
Passed to methods. |
multi_sample_htest.factor |
Analog to argument two_sample_htest.numeric |
multi_sample_htest.ordered |
Analog to argument two_sample_htest.numeric |
multi_sample_htest.numeric |
Either |
Calculates multi sample hypothesis tests depending on the class of its input.
Results are passed to function format_tests
for the final table.
If you are not pleased with the current hypothesis tests you may alter these functions.
But you must keep the original output-format, see section Value.
Function check_tests
checks if the output of statistics is suitable for further processing.
The function multi_sample_htest
is essentially a wrapper
to standardize the arguments of various hypothesis test functions.
A named list with length > 0.
Most hypothesis-test-functions in R like t.test
or chisq.test
return an
object of class 'htest'
. 'htest'
-objects are a suitable output for function two_sample_htest
.
Function check_tests
checks if the output is suitable for further processing.
logical
: Casts to factor and then calls method multi_sample_htest
again.
factor
: Calls chisq.test
.
character
: Casts value
to factor and then calls method multi_sample_htest
again.
ordered
: Calls kruskal.test
.
numeric
: Calls multi_sample_htest
's method on ordered(value)
.
If x[i+1]=x[i]
then x[i+1]
is replaced by by
for i=1,...length(x)-1
.
replace_consecutive(x, by = "", fun_for_identical = base::identical)
replace_consecutive(x, by = "", fun_for_identical = base::identical)
x |
A character or factor. |
by |
A character with length 1. |
fun_for_identical |
A function with two arguments called |
The =
is defined by function identical
by default.
This function can be changed by argument fun_for_identical
A character, same length as x
, now with consecutives replaced by by
.
If length(x) < 2
, x is returned unchanged.
x <- rep(c('a','b','c','d'), times=c(2,4,1,3)) x ## Not run: replace_consecutive(x) # NA should not be identical. So change fun_for_identical fun_for_identical <- function(x,y) !is.na(x) && !is.na(y) && identical(x,y) x <- c(1,1,3,3,NA,NA, 4) x ## Not run: replace_consecutive(x, by="99") ## Not run: replace_consecutive(x, by="99", fun_for_identical = fun_for_identical)
x <- rep(c('a','b','c','d'), times=c(2,4,1,3)) x ## Not run: replace_consecutive(x) # NA should not be identical. So change fun_for_identical fun_for_identical <- function(x,y) !is.na(x) && !is.na(y) && identical(x,y) x <- c(1,1,3,3,NA,NA, 4) x ## Not run: replace_consecutive(x, by="99") ## Not run: replace_consecutive(x, by="99", fun_for_identical = fun_for_identical)
Replaces NA
in characters, factors and data.frames.
replace_NA(x, ...) ## S3 method for class 'character' replace_NA(x, replacement = atable_options("replace_NA_by"), ...) ## S3 method for class 'factor' replace_NA(x, ...) ## S3 method for class 'ordered' replace_NA(x, ...) ## S3 method for class 'data.frame' replace_NA(x, ...) ## S3 method for class 'list' replace_NA(x, ...) ## Default S3 method: replace_NA(x, ...)
replace_NA(x, ...) ## S3 method for class 'character' replace_NA(x, replacement = atable_options("replace_NA_by"), ...) ## S3 method for class 'factor' replace_NA(x, ...) ## S3 method for class 'ordered' replace_NA(x, ...) ## S3 method for class 'data.frame' replace_NA(x, ...) ## S3 method for class 'list' replace_NA(x, ...) ## Default S3 method: replace_NA(x, ...)
x |
An object. |
... |
Passed to methods. |
replacement |
A character of length 1. Default value is defined
in |
The atable package aims to create readable tables. For non-computer-affine
readers NA
has no meaning. So replace_NA
exists.
Methods for character, factor, ordered, list and data.frame available.
Default method returns x
unchanged.
Gives a warning when replacement
is already present in x
and
does the replacement.
Silently returns x
unchanged when there are no NA
in x
.
Silently returns x
unchanged when replacement is not a character of
length 1 or when replacement is NA
.
Same class as x
, now with NA
replaced by replacement
.
character
: replaces NA
with replacement
.
factor
: applies replace_NA
to the levels of the factor. A
factor with length > 0 without levels will get the level replacement
.
ordered
: as factor.
data.frame
: applies replace_NA
to all columns.
list
: applies replace_NA
to all elements of the list.
default
: return x
unchanged.
Character <- c(NA,letters[1:3], NA) Factor <- factor(Character) Ordered <- ordered(Factor) Numeric <- rep(1, length(Factor)) Factor_without_NA <- factor(letters[1:length(Factor)]) DD <- data.frame(Character, Factor, Ordered, Numeric, Factor_without_NA, stringsAsFactors = FALSE) ## Not run: DD2 <- replace_NA(DD, replacement = 'no value') summary(DD) summary(DD2) # now with 'no value' instead NA in column Character, Factor and Ordered atable_options(replace_NA_by = 'not measured') # use atable_options to set replacement DD3 <- replace_NA(DD) summary(DD3) # now with 'not measured' instead NA atable_options_reset() # set 'replace_NA_by' back to default ## End(Not run)
Character <- c(NA,letters[1:3], NA) Factor <- factor(Character) Ordered <- ordered(Factor) Numeric <- rep(1, length(Factor)) Factor_without_NA <- factor(letters[1:length(Factor)]) DD <- data.frame(Character, Factor, Ordered, Numeric, Factor_without_NA, stringsAsFactors = FALSE) ## Not run: DD2 <- replace_NA(DD, replacement = 'no value') summary(DD) summary(DD2) # now with 'no value' instead NA in column Character, Factor and Ordered atable_options(replace_NA_by = 'not measured') # use atable_options to set replacement DD3 <- replace_NA(DD) summary(DD3) # now with 'not measured' instead NA atable_options_reset() # set 'replace_NA_by' back to default ## End(Not run)
A data.frame intended for testing the atable function with standardized random data and missing values in various classes.
standardized_test_data
standardized_test_data
A data frame with 1080 rows and 7 variables:
A factor with 2 levels without NA
. The two levels have the same frequency (540).
A factor with 2 levels with NA
. The two levels and the NA
have the same frequency (360).
A factor with 2 levels with NA
. The two levels and the NA
have the same frequency (360).
A logical.
A factor with 3 levels.
Class ordered with 4 levels.
Class numeric.
For every subset defined by a triplet of the levels of Split1, Split2 and Group the variables have the following properties:
60 observations
Logical has exactly the same number of TRUE
and FALSE
and NA
(20).
Factor has exactly the same number of levels taken and NA
(15).
Ordered has exactly the same number of levels taken and NA
(12).
Numeric is sampled from a normal distribution and then standardized to
sd
1 and with 6 NA
.
Its mean
is 12 when Group
is 'Treatment'
and 10 otherwise (up to 10^-17
).
atable::atable(Logical+ Numeric + Factor + Ordered ~ Group | Split1 + Split2, atable::standardized_test_data, add_levels_for_NA = TRUE, format_to = 'Word')
atable::atable(Logical+ Numeric + Factor + Ordered ~ Group | Split1 + Split2, atable::standardized_test_data, add_levels_for_NA = TRUE, format_to = 'Word')
Calculates descriptive statistics depending on the class of its input.
statistics(x, ...) ## S3 method for class 'numeric' statistics(x, statistics.numeric = NULL, ...) ## S3 method for class 'factor' statistics(x, statistics.factor = NULL, ...) ## S3 method for class 'logical' statistics(x, labels_TRUE_FALSE = atable_options("labels_TRUE_FALSE"), ...) ## S3 method for class 'character' statistics(x, ...) ## S3 method for class 'ordered' statistics(x, statistics.ordered = NULL, ...) ## S3 method for class 'count_me' statistics(x, ...)
statistics(x, ...) ## S3 method for class 'numeric' statistics(x, statistics.numeric = NULL, ...) ## S3 method for class 'factor' statistics(x, statistics.factor = NULL, ...) ## S3 method for class 'logical' statistics(x, labels_TRUE_FALSE = atable_options("labels_TRUE_FALSE"), ...) ## S3 method for class 'character' statistics(x, ...) ## S3 method for class 'ordered' statistics(x, statistics.ordered = NULL, ...) ## S3 method for class 'count_me' statistics(x, ...)
x |
An object. Statistics will be calculated of |
... |
Passed from and to other methods. |
statistics.numeric |
Either |
statistics.factor |
Analog to argument statistics.numeric |
labels_TRUE_FALSE |
For relabeling logicals. See also |
statistics.ordered |
Analog to argument statistics.numeric |
Calculates descriptive statistics depending on the class of its input.
Results are passed to function format_statistics
.
If you are not pleased with the current descriptive statistics you may alter these functions.
But you must keep the original output-format, see section Value.
Function check_statistics
checks if the output of statistics is suitable for further processing.
The results of statistics
are passed to function format_statistics
.
So the results of statistics
must have a class for which the generic format_statistics
has a method.
format_statistics
has a default method, which accepts lists. So the results of statistics
can be a
named list with length > 0. The names of the list must have no duplicates.
Function check_statistics
checks if the output of statistics is suitable for further processing.
numeric
: Descriptive statistics are: length, number of missing values, mean and standard deviation.
Class of the result is 'statistics_numeric'
and there is a method format_statistics_to_Latex.statistics_numeric
.
This function is meant for interval scaled variables.
factor
: Counts the numbers of occurrences of the levels of x
with function table
.
This function is meant for nominal and ordinal scaled variables.
logical
: Casts x
to factor, then applies statistics
again. The labels for TRUE
and FALSE
can also be modfied by setting atable_options('labels_TRUE_FALSE')
.
character
: Casts x
to factor, then applies statistics
again.
ordered
: Casts x
to factor, then applies statistics
again.
count_me
: Returns the length
of x
. For class 'count_me'
see add_observation_column
.
A data.frame intended for testing the atable function with random data and missing values in various classes.
test_data
test_data
A data frame with 129 rows and 11 variables:
A factor with 2 levels, drawn uniformly.
A factor with 3 levels, drawn uniformly.
A factor with 2 levels, drawn uniformly.
A factor with 3 levels, drawn uniformly.
A sample from the standard normal distribution.
A sample from the normal distribution with mean 4 and sd 3.
A Logical, drawn uniformly from TRUE
, FALSE
and NA
.
A factor with 4 level drawn with weigths 1:1:2:2
.
Class Ordered with 3 levels, drawn uniformly.
Class character drawn uniformly from c('a', 'b', '')
.
Class Date, generated by adding 2001-05-25
to
a sample of the Poisson distribution with lambda 42
.
6 Missing values were randomly added to each of Numeric, Numeric2, Factor, Ordered, Character and Date.
Translate_to_LaTeX calls latexTranslate
.
translate_to_LaTeX(x, ...) ## S3 method for class 'data.frame' translate_to_LaTeX(x, ...) ## S3 method for class 'list' translate_to_LaTeX(x, ...) ## S3 method for class 'character' translate_to_LaTeX( x, inn = NULL, out = NULL, pb = FALSE, greek = FALSE, na = "", ... ) ## S3 method for class 'numeric' translate_to_LaTeX(x, ...) ## S3 method for class 'factor' translate_to_LaTeX(x, ...) ## S3 method for class 'logical' translate_to_LaTeX(x, ...)
translate_to_LaTeX(x, ...) ## S3 method for class 'data.frame' translate_to_LaTeX(x, ...) ## S3 method for class 'list' translate_to_LaTeX(x, ...) ## S3 method for class 'character' translate_to_LaTeX( x, inn = NULL, out = NULL, pb = FALSE, greek = FALSE, na = "", ... ) ## S3 method for class 'numeric' translate_to_LaTeX(x, ...) ## S3 method for class 'factor' translate_to_LaTeX(x, ...) ## S3 method for class 'logical' translate_to_LaTeX(x, ...)
x |
An object. |
inn , out , pb , greek , na , ...
|
As in |
Result is suitable for print with latex
.
Translate_to_LaTeX uses S3 object system. See seection methods.
Same length as x
, now translated to latex.
data.frame
: Applies latexTranslate
to
rownames(x)
, colnames(x)
and all columns of x
.
list
: Translates all elements of x
.
character
: As latexTranslate
.
numeric
: Casts to character and then translates.
factor
: Translates the levels of the factor.
logical
: Casts to character and then translates.
Calculates two sample hypothesis tests and effect size depending on the class of its input.
two_sample_htest(value, group, ...) ## S3 method for class 'character' two_sample_htest(value, group, ...) ## S3 method for class 'factor' two_sample_htest(value, group, two_sample_htest.factor = NULL, ...) ## S3 method for class 'logical' two_sample_htest(value, group, ...) ## S3 method for class 'numeric' two_sample_htest(value, group, two_sample_htest.numeric = NULL, ...) ## S3 method for class 'ordered' two_sample_htest(value, group, two_sample_htest.ordered = NULL, ...)
two_sample_htest(value, group, ...) ## S3 method for class 'character' two_sample_htest(value, group, ...) ## S3 method for class 'factor' two_sample_htest(value, group, two_sample_htest.factor = NULL, ...) ## S3 method for class 'logical' two_sample_htest(value, group, ...) ## S3 method for class 'numeric' two_sample_htest(value, group, two_sample_htest.numeric = NULL, ...) ## S3 method for class 'ordered' two_sample_htest(value, group, two_sample_htest.ordered = NULL, ...)
value |
An atomic vector. These values will be tested. |
group |
A factor with two levels and same length as |
... |
Passed to methods. |
two_sample_htest.factor |
Analog to argument two_sample_htest.numeric |
two_sample_htest.numeric |
Either |
two_sample_htest.ordered |
Analog to argument two_sample_htest.numeric |
Results are passed to function format_tests
for the final table.
So the results of two_sample_htest
must have a class for which the generic
format_tests
has a method.
If you are not pleased with the current hypothesis tests you may alter these functions. But you must keep the original output-format, see section Value.
Note that the various statistical test functions in R have heterogeneous arguments:
for example chisq.test
and ks.test
do not have
formula/data as arguments, whereas wilcox.test
and
kruskal.test
do. So the function two_sample_htest
is essentially
a wrapper to standardize the arguments of various hypothesis test functions.
As two_sample_htest
is only intended to be applied to unpaired two sample data,
the two arguments value
and group
are sufficient to describe the data.
Note that e.g. for class numeric the p-value is calculated by ks.test
and the effects
size 95% CI by cohen.d
. As these are two different functions the results may be
contradicting: the p-value of ks.test
can be smaller than 0.05
and the CI of cohen.d
contains 0 at the same time.
A named list with length > 0, where all elements of the list are atomic and have the same length.
Most hypothesis-test-functions in R like t.test
or chisq.test
return an object of class 'htest'
. 'htest'
-objects are a suitable output for function
two_sample_htest
. Function check_tests
checks if the output is suitable for
further processing.
character
: Casts value
to factor and then calls method two_sample_htest
again.
factor
: Calls chisq.test
on value
.
Effect size is the odds ratio calculated by fisher.test
(if value
has two levels),
or Cramer's V by CramerV
.
logical
: Casts value
to factor and then calls two_sample_htest
again.
numeric
: Calls ks.test
on value
.
Effect size is Cohen's d calculated by cohen.d
.
ordered
: Calls wilcox.test
on value
.
Effect size is Cliff's delta calculated by cliff.delta
.