blob: 11196b776b0deca1466dac9e5b3e2abad33c4936 [file] [log] [blame]
Hao Zhu2a87e8e2017-06-14 15:49:33 -04001% Generated by roxygen2: do not edit by hand
2% Please edit documentation in R/collapse_rows.R
3\name{collapse_rows}
4\alias{collapse_rows}
Hao Zhu8a160b12017-06-26 13:41:35 -10005\title{Collapse repeated rows to multirow cell}
Hao Zhu2a87e8e2017-06-14 15:49:33 -04006\usage{
Hao Zhu9410a272020-08-03 01:11:47 -04007collapse_rows(
8 kable_input,
9 columns = NULL,
10 valign = c("middle", "top", "bottom"),
Hao Zhu2b739ac2020-08-15 01:38:51 -040011 latex_hline = c("major", "full", "none", "custom"),
Hao Zhube853f72018-05-20 18:52:26 -040012 row_group_label_position = c("identity", "stack"),
Hao Zhu9410a272020-08-03 01:11:47 -040013 custom_latex_hline = NULL,
14 row_group_label_fonts = NULL,
Hao Zhufdff6f42020-08-09 14:38:10 -040015 headers_to_remove = NULL,
Hao Zhu2b739ac2020-08-15 01:38:51 -040016 target = NULL,
17 col_names = TRUE,
18 longtable_clean_cut = TRUE
Hao Zhu9410a272020-08-03 01:11:47 -040019)
Hao Zhu8a160b12017-06-26 13:41:35 -100020}
21\arguments{
Hao Zhu76281fe2017-07-03 19:33:09 -040022\item{kable_input}{Output of \code{knitr::kable()} with \code{format} specified}
Hao Zhu8a160b12017-06-26 13:41:35 -100023
Jakob Richteraebd8292018-10-31 16:27:29 +010024\item{columns}{A numeric value or vector indicating in which column(s) rows
25need to be collapsed.}
Hao Zhu53454f02018-01-14 16:29:10 -050026
Hao Zhuec169362018-05-21 01:05:29 -040027\item{valign}{Select from "top", "middle"(default), "bottom". The reason why
28"top" is not default is that the multirow package on CRAN win-builder is
29not up to date.}
Hao Zhube853f72018-05-20 18:52:26 -040030
Hao Zhu53454f02018-01-14 16:29:10 -050031\item{latex_hline}{Option controlling the behavior of adding hlines to table.
Hao Zhu2b739ac2020-08-15 01:38:51 -040032Choose from \code{major}, \code{full}, \code{none}, \code{custom} and \code{linespace}. We changed the default from
33\code{full} to \code{major} in version 1.2.}
Hao Zhu248bbef2018-04-02 18:25:14 -040034
35\item{row_group_label_position}{Option controlling positions of row group
36labels. Choose from \code{identity}, \code{stack}.}
37
38\item{custom_latex_hline}{Numeric column positions whose collapsed rows will
39be separated by hlines.}
40
41\item{row_group_label_fonts}{A list of arguments that can be supplied to
42group_rows function to format the row group label when
43\code{row_group_label_position} is \code{stack}}
44
45\item{headers_to_remove}{Numeric column positions where headers should be
46removed when they are stacked.}
Hao Zhu2b739ac2020-08-15 01:38:51 -040047
48\item{target}{If multiple columns are selected to do collapsing and a target
49column is specified, this target column will be used to collapse other
50columns based on the groups of this target column.}
51
52\item{col_names}{T/F. A LaTeX specific option. If you set \code{col.names} be
53\code{NULL} in your \code{kable} call, you need to set this option false to let
54everything work properly.}
55
56\item{longtable_clean_cut}{T/F with default T. Multirow cell sometimes are
57displayed incorrectly around pagebreak. This option forces groups to cut
58before the end of a page. If you have a group that is longer than 1 page,
59you need to turn off this option.}
Hao Zhu2a87e8e2017-06-14 15:49:33 -040060}
61\description{
Hao Zhu8a160b12017-06-26 13:41:35 -100062Collapse same values in columns into multirow cells. This
Hao Zhu76281fe2017-07-03 19:33:09 -040063feature does similar things with \code{group_rows}. However, unlike \code{group_rows},
Hao Zhu8a160b12017-06-26 13:41:35 -100064it analyzes existing columns, finds out rows that can be grouped together,
Hao Zhu76281fe2017-07-03 19:33:09 -040065and make them multirow cells. Note that if you want to use \code{column_spec} to
66specify column styles, you should use \code{column_spec} before \code{collapse_rows}.
Hao Zhu2a87e8e2017-06-14 15:49:33 -040067}
Hao Zhu5a7689e2017-06-26 15:37:24 -100068\examples{
69dt <- data.frame(a = c(1, 1, 2, 2), b = c("a", "a", "a", "b"))
70x <- knitr::kable(dt, "html")
71collapse_rows(x)
72
73}