RMarkdown - 使用 DT 创建列 Headers
RMarkdown - Creat Column Headers using DT
我想使用 DT::datatable
在 Rmd
中创建一些 table。
目前我的 table 看起来像这样:
但我更希望在列上方有一个 header,所以它会在第一行上显示“Pre”,在其下显示 M 和 SD 表示 Pre。这是一个例子:
有人可以帮忙吗?
如果 DT::datatable
的交互性对您来说不重要(正如 table 的简洁性所暗示的那样),我建议使用 KableExtra::kable
,它可以轻松处理此类 headers 在 HTML 和 Latex 中:https://cran.r-project.org/web/packages/kableExtra/vignettes/awesome_table_in_html.html.
如果您确实想使用 DT::datatable
,您可以尝试此答案 中建议的解决方案。这涉及创建 HTML table 的“草图”以填充数据单元格。
library(DT)
library(htmltools)
cont <- withTags(
table(
class = "display",
thead(
tr(
th(colspan = 2, "Pre"),
th(colspan = 2, "Post")
),
tr(
th("M"),
th("SD"),
th("M"),
th("SD")
),
)
)
)
datatable(df, rownames = FALSE, container = cont,
options = list(
columnDefs = list(
list(targets = "_all", className = "dt-center")
)
))
数据
df <- structure(list(Pre_M = c(60.23, 59.96, 60.48), Pre_SD = c(8.02,
7.98, 8.04), Post_M = c(55.15, 56.48, 53.91), Post_SD = c(9.94,
10.16, 9.55)), class = "data.frame", row.names = c(NA, -3L))
我想使用 DT::datatable
在 Rmd
中创建一些 table。
目前我的 table 看起来像这样:
但我更希望在列上方有一个 header,所以它会在第一行上显示“Pre”,在其下显示 M 和 SD 表示 Pre。这是一个例子:
有人可以帮忙吗?
如果 DT::datatable
的交互性对您来说不重要(正如 table 的简洁性所暗示的那样),我建议使用 KableExtra::kable
,它可以轻松处理此类 headers 在 HTML 和 Latex 中:https://cran.r-project.org/web/packages/kableExtra/vignettes/awesome_table_in_html.html.
如果您确实想使用 DT::datatable
,您可以尝试此答案
library(DT)
library(htmltools)
cont <- withTags(
table(
class = "display",
thead(
tr(
th(colspan = 2, "Pre"),
th(colspan = 2, "Post")
),
tr(
th("M"),
th("SD"),
th("M"),
th("SD")
),
)
)
)
datatable(df, rownames = FALSE, container = cont,
options = list(
columnDefs = list(
list(targets = "_all", className = "dt-center")
)
))
数据
df <- structure(list(Pre_M = c(60.23, 59.96, 60.48), Pre_SD = c(8.02,
7.98, 8.04), Post_M = c(55.15, 56.48, 53.91), Post_SD = c(9.94,
10.16, 9.55)), class = "data.frame", row.names = c(NA, -3L))