Reputation: 81
#Preparing the data and loading packages
library(modelsummary);library(tidyverse);library(gt)
as_tibble(mtcars)
df <- mtcars %>% mutate(cyl_ = factor(cyl)) %>%
dplyr::select(cyl_, mpg, vs, am, hp, wt)
#Gets table of descriptive statistics about different subsets of the data
print(t1 <- datasummary_balance(~cyl_,
data = df,
output = "gt"))
#This hides the "Std. Dev." columns
t1 %>% cols_hide(c(3,5,7))
#Now I want to hide the "Mean" column labels, but I want to keep the "cyl_" value column labels. Any ideas how?
I want something like this:
Upvotes: 4
Views: 2987
Reputation: 16
Ugly solution but one could always add cols_label(col_name = "") as a way of making every column name nothing.
Upvotes: 0
Reputation: 17715
Using the gt
package, you can pipe your table to tab_options(column_labels.hidden = TRUE)
to remove column labels. Unfortunately, this will remove both levels: the column headers, and the spanning labels that include the cyl
info you want to keep.
Note that datasummary_balance()
produces a highly customized table which is intended to be used as a ready-made output. In cases like these, it might be easier to just build the custom table you want using datasummary()
instead of trying to customize datasummary_balance()
(square peg, round hole, etc). For example:
library(modelsummary)
library(tidyverse)
df <- mtcars %>%
select(cyl, mpg, vs, am, hp, wt) %>%
mutate(cyl = factor(sprintf("%s (N = %s)", cyl, n()))) %>%
as.data.frame() # The `All()` function does not accept tibbles
datasummary(
All(df) ~ Mean * cyl,
data = df,
output = "gt")
Upvotes: 5