簡體   English   中英

如何在 R 中創建包含合並行的表

[英]How do I create a table with merged rows in R

是否有一個 R package 可以讓我制作這樣的表格 -

在此處輸入圖像描述

我正在使用 excel 來顯示我想要的 output。 我以 mtcars 數據集為例。 在這里,我將碳水化合物尺寸分為小、中和大,並按這些尺寸顯示計數和平均 mpg。 我一直在探索 gt package 但仍在努力生產這樣的東西。 我從教程中看到的是 gt 表可以在每個組下方添加匯總行,但是我想將匯總(計數、平均值等)添加為列,而不是每個組下方的行。

最后,當我嘗試使用 mtcars 數據集復制上面鏈接中的教程時,出現以下錯誤 -

Error in rlang::eval_tidy(expr = var_expr, data = data_tbl, env = emptyenv()) : object mean.mpg not found

這是我的代碼 -

mtcars %>% 
  select(mpg, carb) %>% 
  mutate(size = case_when(
    carb %in% c(1, 2) ~ "Large",
    carb %in% c(4, 4) ~ "Medium",
    TRUE ~ "Small"
  )) %>% 
  group_by(carb, size) %>% 
  summarise(count = n(),
            mean.mpg = mean(mpg)) %>% 
  ungroup() %>% 
  gt(groupname_col = "size") %>% 
  summary_rows(groups = T, 
               columns = mean.mpg,
               fns = list(
                 average = "mean"
               ))

我很感激任何幫助。

如果在新列名周圍加上引號,則在運行 gt 版本:0.2.2 的 R 4.04 中不會出現錯誤,因此請嘗試:columns = 'mean.mpg'。 從@lag_rat_kid 評論和我們的共同經驗來看,我猜這種不合理之處在更新版本的 pkg:gt 中得到了糾正。

 #quit current session; restart
 install.packages("gt")
 library(gt); library(dplyr)
 # your code now succeeds

盡管我對其進行了一些修改以修復“中等”案例定義中的錯誤

我使用了 Rstudio 導出為 PNG 文件,並且對它創建的大小感到震驚...... 1.8 MB,所以我將其保存為 jpg 文件,然后在將其包含在此處之前重新保存為 PNG 文件)。 然后我采用了另存為jpg文件的做法,然后用圖像查看程序將其轉換為上傳到這里。

如果您從分組中刪除“卡片”列,做一些不同的標簽並且不包括摘要行(您已經計算過),您會更接近您的願望:

my_gt_tbl <- mtcars %>%
select(mpg, carb) %>%
mutate(size = case_when(
carb %in% c(1, 2) ~ "Large = 1,2",
carb %in% c(3, 4) ~ "Medium = 3,4",
TRUE ~ "Small = 6,8"
)) %>%
group_by(size) %>%
summarise(count = n(),
mean.mpg = mean(mpg))  %>%
gt(groupname_col = "size") 
my_gt_tbl

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM