R语言 仅对某些列使用表gt数据.行.填充

jogvjijk  于 2023-06-27  发布在  其他
关注(0)|答案(1)|浏览(158)

我遇到了这个问题,基本上我想做同样的事情,但只为某些列设置单元格填充。
R - gt package - Ability to control cell padding within table header and column labels?
这是我的dataframe:

gt(data = mtcars) %>% 
  tab_header(
    title = "mtcars dataset") %>% 
  tab_options(data_row.padding = px(10), 
              column_labels.padding = px(3), 
              heading.padding = px(5), 
              data_row.padding.horizontal = px(5))

例如,我想只对最后4列应用“data_row.padding.horizontal“。在我的真实的案例中,我有一个充满列号的向量,我想将data_row.padding减少到0。我想要的输出将是整个表的data_row.padding,但在最后4列中,我希望填充0。辅助函数“locations”对我不起作用,在这种情况下,我真的不知道如何使用循环。

yacmzcpb

yacmzcpb1#

可以使用的一种方法是有条件地设置列宽。我已经包括了两个如何做到这一点的例子。

  • 在第一个例子中,我刚刚将这个宽度分配给列vs
  • 在第二个例子中,我修改了mtcars,使所有列都不是数字列,然后将宽度分配给数字列。最后,我没有将数字列居中,这样填充变化会更明显

下面是有条件地设置列宽的两个示例。
只有vs列:

gt(data = mtcars) %>% 
  tab_header(
    title = "mtcars dataset") %>% 
  cols_width(vs ~ pct(10))

所有numeric列:

mtcars %>% 
  mutate(cyl = factor(cyl),
         across(vs:carb, factor)) %>%          # change some fields to factor
  gt() %>% 
  tab_header(
    title = "mtcars dataset") %>% 
  cols_width(where(is.numeric) ~ pct(15)) %>%  # widths of numeric columns
  cols_align(align = c("center"),              # center non-numeric
             columns = where(is.factor))

相关问题