![](/img/trans.png)
[英]How do I create a table with rows from a first table that also matches 3 columns in the row of a second table in 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.