【问题标题】:gt package how to format colum summary rows : how to format summary values with numbers AND percent based on columnsgt 包如何格式化列汇总行:如何根据列用数字和百分比格式化汇总值
【发布时间】:2021-05-05 06:44:20
【问题描述】:

我有一个频率和相对频率表。

jobs <- c("teacher", "teacher", "teacher", "teacher", "researcher", "researcher" , "researcher" , "researcher", "barman", "barman" )

jobs <- data.frame(jobs)

我想用数字为 n 和百分比为我的频率列格式化我的摘要行:

  1. 我尝试了什么:所有值都以百分比表示:

    jobs %>%
     count(jobs) %>%
     mutate(frequence = n/sum(n))  %>%
     gt(rowname_col =  "jobs")  %>%  
     grand_summary_rows (
       columns = vars(n, frequence),
       fns = list(Total =~sum(.)),
       formatter = fmt_percent
      )
    
  2. 我尝试了什么:返回一个错误

    jobs %>%
      count(jobs) %>%
      mutate(frequence = n/sum(n))  %>%
      gt(rowname_col =  "jobs")  %>%  
      grand_summary_rows (
       columns = vars(n, frequence),
       fns = list(Total =~sum(.)),
       formatter = fmt_percent(columns = "frequence"),
       formatter = fmt_number(columns = "n")
      )
    

【问题讨论】:

    标签: r gt


    【解决方案1】:

    如果您想对每个摘要行使用不同的格式,您可以对grand_summary_rows 使用两次调用,每列调用一次,并指定不同的格式。

    jobs <- c("teacher", "teacher", "teacher", "teacher", "researcher", 
              "researcher" , "researcher" , "researcher", "barman", "barman" )
    jobs <- data.frame(jobs)
    
    jobs %>%
      count(jobs) %>%
      mutate(frequence = n/sum(n))  %>%
      gt(rowname_col =  "jobs")  %>%  
      grand_summary_rows (
        columns = "n",
        fns = list(Total =~sum(.)),
        formatter = fmt_number
      ) %>%
      grand_summary_rows (
        columns = "frequence",
        fns = list(Total =~sum(.)),
        formatter = fmt_percent
      )
    

    【讨论】:

      【解决方案2】:

      你的第一个问题困扰了我一会儿:data.frames 将每个向量作为 named 参数

      jobs_vector <- c("teacher", "teacher", "teacher", "teacher", "researcher", "researcher" , "researcher" , "researcher", "barman", "barman")
      df <- data.frame(jobs = jobs_vector)
      

      您的下一个问题可以使用 janitor 包中的 tabyl() 函数解决。

      library(janitor)
      tabyl(df, jobs)
      

      返回

      要获得发布质量的表格,您可以使用gt 包。 下面是gt的两个实用函数:

      library(gt)
      df1 %>% 
        gt(rowname_col = jobs) %>% 
        opt_row_striping() %>% 
        gtsave("myTable.png")
      

      【讨论】:

        猜你喜欢
        • 2012-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多