Nothing
#' @title overview_latex
#'
#' @description Produces a 'LaTeX' output for output obtained via
#' \code{overview_tab} and \code{overview_crosstab}
#'
#' @param obj Overview object produced by overview_tab or overview_crosstab
#' @param title Caption of the table (default is "Time and scope of the sample")
#' @param id The name of the left column (default is "Sample"), will be ignored
#' if crosstab is TRUE
#' @param time The name of the right column (default is ("Time frame")), will
#' be ignored if \code{crosstab} is TRUE
#' @param crosstab Logical argument, if TRUE produces a \code{crosstab} output,
#' default is FALSE
#' @param cond1 Description for the first condition (character), will be
#' ignored if \code{crosstab} is FALSE. This should correspond to the input
#' for \code{cond1} in \code{overview_crosstab}
#' @param cond2 Description for the second condition (character), will be
#' ignored if \code{crosstab} is FALSE. This should correspond to the input
#' for \code{cond2} in \code{overview_crosstab}
#' @param save_out Optional argument, exports the output table as a .tex
#' file, default is FALSE
#' @param file_path Specifies the path and file name (.tex) where you store your output
#' @param label Specifies the label (default is "tab:tab1")
#' @param fontsize Specifies the font size (all 'LaTeX' font sizes such as
#' "scriptsize" or "small" work)
#' @param path This argument is deprecated. Please use "file_path" instead and add the full path.
#' @param file This argument is deprecated. Please use "file_path" instead and add the full path.
#' @return A 'LaTeX' output that can either be copy-pasted in a text document or
#' exported directed as a .tex file
#' @examples
#' data(toydata)
#'
#' overview_object <- overview_tab(dat = toydata, id = ccode, time = year)
#' overview_latex(
#' obj = overview_object,
#' title = "Some nice title",
#' crosstab = FALSE
#' )
#'
#'#' overview_object <- overview_tab(dat = toydata, id = ccode, time = year)
#' overview_latex(
#' obj = overview_object,
#' title = "Some nice title",
#' file_path = "some/path_to/your_output_file.tex"
#' )
#'
#' overview_ct_object <- overview_crosstab(
#' dat = toydata,
#' cond1 = gdp,
#' cond2 = population,
#' threshold1 = 25000,
#' threshold2 = 27000,
#' id = ccode,
#' time = year
#' )
#' overview_latex(
#' obj = overview_ct_object,
#' title = "Some nice title for a cross tab",
#' crosstab = TRUE,
#' cond1 = "Name of first condition",
#' cond2 = "Name of second condition"
#' )
#' @export overview_latex overview_latex
#' @importFrom dplyr "%>%"
overview_latex <-
function(obj,
title = "Time and scope of the sample",
id = "Sample",
time = "Time frame",
crosstab = FALSE,
cond1 = "Condition 1",
cond2 = "Condition 2",
save_out = FALSE,
file_path,
label = "tab:tab1",
fontsize,
file,
path) {
if (!missing("file") & !missing("path")){
warning("Argument deprecated, use 'file_path' instead.
The parameter 'file' and 'path' are combined to become 'file_path'.")
file_path <- paste0(path, file)
}
obj <- as.matrix(obj)
# Add a fontsize (if defined)
if (missing(fontsize) == FALSE) {
fontsize_mod <- paste0("\\", fontsize)
} else {
fontsize_mod <- ""
}
if (ncol(obj) != 2) {
stop(
"Data frame requires two columns that represent the time and
scope dimension of the data. A overview_tab or overview_crosstab
object is required."
)
}
if (crosstab == FALSE) {
if (nrow(obj) == 2) {
warning(
"Are you sure you want a table for time and scope conditions? For a
crosstab, set option crosstab = TRUE"
)
}
for (i in length(obj)) {
begin_tab <-
paste0(
"% Overview table generated in ",
version[["version.string"]],
" using overviewR \n",
"% Table created on ",
as.character(Sys.Date()),
"\n",
"\\begin{table}[ht] \n \\centering \n \\caption{",
title,
"} \n",
"\\label{",
label,
"} \n",
fontsize_mod,
"\n",
"\\begin{tabular}{ll} \n \\hline \n",
id,
" & ",
time,
" \\\\ \\hline \n"
)
out <- paste0(obj[, 1], " & ", obj[, 2], " \\\\ \n")
end_tab <-
paste0("\\hline \n \\end{tabular} \n \\end{table} \n")
if (save_out == FALSE) {
cat(begin_tab, out, end_tab)
}
if (save_out == TRUE) {
sink(file_path)
cat(begin_tab, out, end_tab)
sink()
}
}
}
if (crosstab == TRUE) {
for (i in length(obj)) {
begin_crosstab <- paste0(
"% Overview table generated in ",
version[["version.string"]],
" using overviewR \n",
"% Table created on ",
as.character(Sys.Date()),
"\n",
"% Please add the following packages to your document preamble: \n",
"% \\usepackage{multirow} \n",
"% \\usepackage{tabularx} \n",
"% \\newcolumntype{b}{X} \n",
"% \\newcolumntype{s}{>{\\hsize=.5\\hsize}X} \n",
"\\begin{table}[ht] \n",
"\\caption{",
title,
"} \n",
"\\label{",
label,
"} \n",
fontsize_mod,
"\n",
"\\begin{tabularx}{\\textwidth}{ssbb} \n",
"\\hline & & \\multicolumn{2}{c}{\\textbf{",
cond1,
"}} \\\\ \n",
" & & \\textbf{Fulfilled} & \\textbf{Not fulfilled} \\\\ ",
"\n \\hline \\\\ \n \\multirow{2}{*}{\\textbf{",
cond2,
"}} & \\textbf{Fulfilled} & \n"
)
cross_out1 <- paste0(obj[1, 1], " & ", obj[1, 2], "\\\\ ")
mid_crosstab <-
paste0("\n \\\\ \\hline \\\\ \n & \\textbf{Not fulfilled} & ")
cross_out2 <- paste0(obj[2, 1], " & ", obj[2, 2], "\\\\ ")
end_crosstab <-
paste0("\\hline \\\\ \n \\end{tabularx} \n \\end{table} \n")
if (save_out == FALSE) {
cat(
begin_crosstab,
cross_out1,
mid_crosstab,
cross_out2,
end_crosstab
)
}
}
if (save_out == TRUE) {
sink(file_path)
cat(
begin_crosstab,
cross_out1,
mid_crosstab,
cross_out2,
end_crosstab
)
sink()
}
}
}
overview_print <- overview_latex
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.