【问题标题】:printable table with partial bolding/italics within a cell单元格内带有部分粗体/斜体的可打印表格
【发布时间】:2018-12-11 23:37:44
【问题描述】:

我正在寻找一种从 R 中打印出表格的方法,但要在单元格 设置格式,例如将单元格内的某些文本设为粗体或斜体。通常我会首先制作适当的data.frame/tibble,然后使用huxtablekable 之类的包进行格式化和打印。查看 huxtablekableExtra 的文档,似乎这两个包都将格式化视为单元格的属性,这意味着单元格内格式化要么不受支持,要么必须以其他方式实现。

如果我要创建 ggplot,我会使用 expression 进行文本格式化,例如

library(tidyverse)

ggplot(data=mtcars) +
  ggtitle(expression(paste(bold("bold part"), " not bold part")))

我认为我可以通过将表达式放入 data.frame 来变得聪明,但这似乎不受支持:

data.frame(var = c(expression(paste(bold("bold part"), "not bold part")),
                   expression(paste(bold("bold part"), "not bold part"))
))
#> Error in as.data.frame.default(x[[i]], optional = TRUE): cannot coerce class ""expression"" to a data.frame

【问题讨论】:

标签: r dataframe html-table kable


【解决方案1】:

Re huxtable,你是对的,但你可以绕过它。这是一个 1 行 1 列的示例,假设您要打印到 HTML:

my_hux <- huxtable("<b>Bold part</b> Not bold part") escape_contents(my_hux)[1, 1] <- FALSE

您可以包含任意 HTML。类似的东西也适用于 TeX,显然用 TeX 格式代替。

【讨论】:

    【解决方案2】:

    如果你想修改数据表,我推荐你使用gridgridExtra包来构建你的表,然后修改主题参数。

    没有任何数据可玩,我无法确切了解您想要什么,但这里是您可以做什么的大致思路(见下文)。我已经包含了其他美学参数,以供将来参考。

    然后您可以生成一个 pdf 输出到您的 C 驱动器,然后可以打印。

    d <- data.frame(A = c(1,2,3,4,5),
                    B = c(6,7,8,9,10),
                    C = c(11,12,13,14,15))
    
    pdf("Test.pdf", height = 11, width = 10)
    grid.table(d, rows = NULL, theme = ttheme_minimal(
    core=list(fg_params=list(
    hjust=0, 
    x=0.1, 
    fontface=matrix(c(1,2,3)))))) 
    dev.off()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-01
      • 2016-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多