Discrete data summary in long format
the data frame to summarize; the user should filter or subset
so that data
contains exactly the records to be summarized; pmtables will
not add or remove rows prior to summarizing data
the columns to summarize; may be character vector or quosure
a grouping variable for the summary; may be given as character vector or quosure.
data set column name to stratify the summary
a named list to use for renaming columns (see details and examples)
a name to use for the complete data summary
where to put an all-data summary; choose none
to omit the
summary from the table.
logical; if TRUE
, then data the summary will be completed
for missing levels of by
and panel
.
the denominator to use when calculating percent for each level;
group
uses the total number in the chunk being summarized; total
uses
the total number in the data set; historically, group
has been used as the
default.
An object with class pmtable
; see class-pmtable.
The data summary for this table is count (percent)
. The number of
data points for each row is also summarized as n
on the left hand side
of the table (either on the far left or just to the right of the by
column).
When group
is selected for denom
, percent
is calculated with
denominator set to n
, the total for each row. When total
is selected for
denom
, then percent
is calculated by the total number of records in the
input data.
The notes in this table are generated with pt_cat_wide_notes()
.
out1 <- pt_cat_wide(pmt_first, cols = "SEXf,ASIANf")
stable(out1)
#> [1] "\\setlength{\\tabcolsep}{5pt} "
#> [2] "\\begin{threeparttable}"
#> [3] "\\renewcommand{\\arraystretch}{1.3}"
#> [4] "\\begin{tabular}[h]{lcccc}"
#> [5] "\\hline"
#> [6] "\\multicolumn{1}{c}{} & \\multicolumn{2}{c}{SEXf} & \\multicolumn{2}{c}{ASIANf} \\\\"
#> [7] "\\cmidrule(lr){2-3}"
#> [8] "\\cmidrule(lr){4-5}"
#> [9] "n & male & female & Asian & non-Asian \\\\"
#> [10] "\\hline"
#> [11] "160 & 80 (50.0) & 80 (50.0) & 66 (41.2) & 94 (58.8) \\\\"
#> [12] "\\hline"
#> [13] "\\end{tabular}"
#> [14] "\\begin{tablenotes}[flushleft]"
#> [15] "\\item Summary is count (percent)"
#> [16] "\\item n: number of records summarized"
#> [17] "\\end{tablenotes}"
#> [18] "\\end{threeparttable}"
#> attr(,"class")
#> [1] "stable"
out2 <- pt_cat_wide(pmt_first, cols = "SEXf,ASIANf", by = "FORMf")
stable(out2)
#> [1] "\\setlength{\\tabcolsep}{5pt} "
#> [2] "\\begin{threeparttable}"
#> [3] "\\renewcommand{\\arraystretch}{1.3}"
#> [4] "\\begin{tabular}[h]{lccccc}"
#> [5] "\\hline"
#> [6] "\\multicolumn{2}{c}{} & \\multicolumn{2}{c}{SEXf} & \\multicolumn{2}{c}{ASIANf} \\\\"
#> [7] "\\cmidrule(lr){3-4}"
#> [8] "\\cmidrule(lr){5-6}"
#> [9] "FORMf & n & male & female & Asian & non-Asian \\\\"
#> [10] "\\hline"
#> [11] "tablet & 130 & 62 (47.7) & 68 (52.3) & 53 (40.8) & 77 (59.2) \\\\"
#> [12] "capsule & 15 & 7 (46.7) & 8 (53.3) & 7 (46.7) & 8 (53.3) \\\\"
#> [13] "troche & 15 & 11 (73.3) & 4 (26.7) & 6 (40.0) & 9 (60.0) \\\\"
#> [14] "\\hline \\hline {\\bf All data} & 160 & 80 (50.0) & 80 (50.0) & 66 (41.2) & 94 (58.8) \\\\"
#> [15] "\\hline"
#> [16] "\\end{tabular}"
#> [17] "\\begin{tablenotes}[flushleft]"
#> [18] "\\item Summary is count (percent)"
#> [19] "\\item n: number of records summarized"
#> [20] "\\end{tablenotes}"
#> [21] "\\end{threeparttable}"
#> attr(,"class")
#> [1] "stable"
if (FALSE) { # \dontrun{
st2report(stable(out1))
st2report(stable(out2))
} # }