2

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

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

jobs <- data.frame(jobs)

我想用 n 的数字和我的 freq 列的百分比来格式化我的摘要行:

  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")
      )
    
4

2 回答 2

2

如果您想对每个摘要行使用不同的格式,您可以使用两个调用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
  )

带有数字和百分比汇总行的表格

于 2021-10-23T04:59:32.763 回答
1

你的第一个问题难倒了我一会儿:data.frames 将每个向量作为命名参数

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

您的下一个问题是使用包中的tabyl()功能解决的janitor

library(janitor)
tabyl(df, jobs)

退货

在此处输入图像描述

要获得出版质量的表格,您可以使用该gt软件包。这里有两个gt有用的功能:

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

在此处输入图像描述

于 2021-06-06T21:19:46.050 回答