Discrete data summary in long format
Arguments
- data
the data frame to summarize; the user should filter or subset so that
datacontains exactly the records to be summarized; pmtables will not add or remove rows prior to summarizingdata- cols
the columns to summarize; may be character vector or quosure
- by
a grouping variable for the summary; may be given as character vector or quosure.
- panel
data set column name to stratify the summary
- table
a named list to use for renaming columns (see details and examples)
- all_name
a name to use for the complete data summary
- summarize
where to put an all-data summary; choose
noneto omit the summary from the table.- complete
logical; if
TRUE, then data the summary will be completed for missing levels ofbyandpanel.- denom
the denominator to use when calculating percent for each level;
groupuses the total number in the chunk being summarized;totaluses the total number in the data set; historically,grouphas been used as the default.
Value
An object with class pmtable; see class-pmtable.
Details
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().
Examples
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))
} # }
