代码之家  ›  专栏  ›  技术社区  ›  Essi

Rgt包-如何一次重命名所有列

  •  0
  • Essi  · 技术社区  · 2 年前

    我有一个像这样的数据帧:

    library(gt)
    library(tidyverse)
    library(gtExtras)
    
    test = dplyr::tibble(
      id = 1:3,
      type1_value1 = 2:4,
      type1_value2 = 3:5,
      type2_value1 = 4:6,
      type2_value2 = 5:7)
    

    事实上,我只想要扳手,但不想要冷扳手,当我尝试时,这似乎不起作用:

    test %>%
      gt() %>%
      tab_spanner(
        label = "span1",
        columns = c(2:3)) %>%
      tab_spanner(
        label = "span2",
        columns = c(4:5)) %>%
      tab_options(column_labels.hidden = TRUE)
    

    扳手就是不会出现。如果你知道什么是错误的解决方案,请给我一个提示。 我现在试着通过重命名每个没有名字的列来解决这个问题。

    test %>%
      gt() %>%
      tab_spanner(
        label = "span1",
        columns = c(2:3)) %>%
      tab_spanner(
        label = "span2",
        columns = c(4:5)) %>%
      cols_label(id = "", type1_value1 = "", type1_value2 = "", 
                 type2_value1 = "", type2_value2 = "") 
      
      cols_label(id = "", type1_value1 = "", type1_value2 = "", 
                 type2_value1 = "", type2_value2 = "") 
    

    我真正的df有200多个专栏。如何一次将它们全部重命名?它们都应该得到空名称“”。

    谢谢你的帮助。

    1 回复  |  直到 2 年前
        1
  •  1
  •   stefan    2 年前

    使用 tidyselect 帮手 everything() 您可以一次重命名所有列,如下所示:

    library(gt)
    library(tidyverse)
    
    test %>%
      gt() %>%
      tab_spanner(
        label = "span1",
        columns = c(2:3)
      ) %>%
      tab_spanner(
        label = "span2",
        columns = c(4:5)
      ) %>%
      cols_label(
        everything() ~ ""
      )
    

    enter image description here

    推荐文章