【问题标题】:Complex summary table using gtsummary in R在 R 中使用 gtsummary 的复杂汇总表
【发布时间】:2023-04-07 23:52:01
【问题描述】:

我在数据集中选择了几列,我想使用 gtsummary 制作一个表格。我遇到了一些问题,不知道如何使它工作。

部分可重现的数据在这里

structure(list(country = c("SGP", "JPN", "THA", "CHN", "JPN", 
"CHN", "CHN", "JPN", "JPN", "JPN"), Final_Medal = c(NA, NA, NA, 
NA, NA, "GOLD", NA, NA, NA, NA), Success = c(0, 0, 0, 0, 0, 1, 
0, 0, 0, 0)), row.names = c(NA, 10L), class = "data.frame")


它看起来像这样:

country Final_Medal Success
SGP     NA          0
JPN     NA          0
THA     NA          0

Final_Medal 包含 NA、GOLD、SILVER 和 BRONZE 成功包含0和1 我想要输出的只是按国家/地区分组并计算每个国家/地区的奖牌数和成功率。

期望输出:

Country  GOLD  Silver Bronze  Success   Total_Entry
SGP       5      2       10      17         50
JPN       4      3       5       12         60
CHN       5      2       6       13         60

Success 只会计算 1,我希望它包含的 Total_Entry 是 0 还是 1 都没有关系

我有一个看起来像这样的代码,但它不起作用,我不确定需要做什么。

library(gtsummary)

example%>%tbl_summary(
  by = country,
  missing = "no" # don't list missing data separately
) %>% 
  bold_labels() 

【问题讨论】:

    标签: r datatable gtsummary


    【解决方案1】:

    您可以在dplyr 中进行聚合,并使用gt/gtsummary 进行显示。

    library(dplyr)
    library(gt)
    
    df %>%
      group_by(country) %>%
      summarise(Gold = sum(Final_Medal == 'GOLD', na.rm = TRUE), 
                Silver = sum(Final_Medal == 'SILVER', na.rm = TRUE), 
                Bronze = sum(Final_Medal == 'BRONZE', na.rm = TRUE), 
                Success = sum(Success), 
                Total_Entry = n()) %>%
      gt() 
    

    【讨论】:

    • 在阅读gt包后,您如何对表格中的顺序进行排序?按总条目说?
    • summarise之后可以添加arrange(desc(Total_Entry)) %>%
    猜你喜欢
    • 2023-01-08
    • 2021-07-19
    • 2020-10-08
    • 1970-01-01
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    • 1970-01-01
    相关资源
    最近更新 更多