【问题标题】:r - use kable to group columns with sub columns having the same namer - 使用 kable 对具有相同名称的子列的列进行分组
【发布时间】:2020-02-22 04:45:34
【问题描述】:

我正在尝试使用kablekableextra 创建一个具有不同分组标题但子标题中的列名相同的表

例如,如果您查看Create Awesome LaTeX Table with knitr::kable andkableExtra 的“分组列/标题”部分(第 14 页),它是分组的,但子标题名称不同:

library(knitr)
library(kableExtra)
dt <- mtcars[1:5, 1:6]

kable(dt, "latex", booktabs = T) %>%
kable_styling() %>%
add_header_above(c(" " = 1, "Group 1" = 2, "Group 2" = 2, "Group 3" = 2))

我正在尝试做的是这样的事情,将汽车作为组(例如仅使用两辆汽车):

Mazda RX4 | Datsun 710
----------------------
mpg | cyl | mpg | cyl
----------------------
21.0|   6 | 21.4|   6

或者作为另一个例子:

Group 1 | Group 2
------------------
x  |  y | x  |  y
------------------
a  |  1 | b  |  2
c  |  3 | d  |  4

这可能吗?

【问题讨论】:

  • 我认为knitr::kable 不可能,但你可以试试gt

标签: r r-markdown bookdown kable kableextra


【解决方案1】:

我遇到了同样的问题。希望这会有所帮助:

编辑:更改了答案以制作 HTML 表格,但逻辑仍然存在!

library(kableExtra)
library(tidyverse)
library(knitr)

df <- tibble('mpg_Mazda_RX4' = 21,
             'cyl_Mazda_RX4' = 6,
             'mpg_Datsun_710' = 21.4,
             'cyl_Datsun_710' = 6)
kable(df,
      "html",
      booktabs = T,
      align = c("r"),
      col.names = c("mpg","cyl","mpg","cyl")) %>%
  kable_styling("striped", full_width = F,
                position = "left", font_size = 12) %>%
  add_header_above(c("Mazda RX4" = 2, "Datsun 710" = 2))

您必须将列名直接传递给 kable(不更改数据框列名)。

结果:

【讨论】:

  • 嗨@LuisSilva,我正在尝试输出到html。我想我遵循您的逻辑,但您提供的代码没有生成表格。
  • 嗨。您在问题中提供的代码用于乳胶表,因此我认为您想制作 PDF。修复了 HTML 的答案。请立即尝试!
猜你喜欢
  • 1970-01-01
  • 2020-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-24
  • 2020-11-29
  • 2013-02-05
相关资源
最近更新 更多