代码之家  ›  专栏  ›  技术社区  ›  SantiClaus

当我使用knitr编织到html时,没有表输出

  •  1
  • SantiClaus  · 技术社区  · 8 年前

    我在用 kableExtra 尝试输出乳胶表,但当我将代码编织到 html ,表不输出。它只输出我不想要的垃圾。下面是示例代码,输出的结果也是:

    ```{r, echo=FALSE}
    library(dplyr)
    library(kableExtra)
    library(knitr)
    
    x <- seq(1,9,by = 1)
    
    kable(x,format = 'latex', booktabs = T, caption = "A KnitR Kable")
    ```
    

    输出输入 HTML格式 文件:

    ## 
    ## Attaching package: 'dplyr'
    ## The following objects are masked from 'package:stats':
    ## 
    ##     filter, lag
    ## The following objects are masked from 'package:base':
    ## 
    ##     intersect, setdiff, setequal, union
    ```
    

    怎么了?

    2 回复  |  直到 8 年前
        1
  •  1
  •   Hao    8 年前

    作为kableextra的作者,我觉得我需要澄清一下。当你使用 knitr::kable 独自一人,@jongrub说的绝对正确。 format = "markdown" in kable是默认值,您可以让pandoc为您确定表的格式。但是,如果您使用 kableExtra ,它只在乳胶表或HTML表上工作,这些标记输出将不起作用。这就是为什么在过去,你需要指定 format 在你的歌声中。

    几个月前,我意识到人们需要生成同时在html和latex中工作的表,特别是随着 bookdown 是的。因此,我在kableextra的0.9.0中添加了一些内容,它将自动识别是否在乳胶环境中使用。如果是,它将设置默认值 kable 格式为“乳胶”。否则,您将得到一个html表(如果您在常规r会话中使用它,您将在rstudio中看到它的预览)。这个小把戏可以让你摆脱那些 format="xxx" 电话。它允许您使用在html和latex中工作的同一段代码生成定制的表输出。

        2
  •  0
  •   JBGruber    8 年前

    正如一些评论指出的,这里的问题是 format = 'latex' 当你用r-markdown来编织 html 报告。r-markdown在生成时使用markdown语言而不是乳胶。 HTML格式 是的。

    当您生成pdf时,图片看起来有所不同,因为该过程首先生成用乳胶编译的乳胶文档。

    因此,你必须选择 format = 'markdown' 是的。这对html和pdf都有效。但是,我建议您不要指定格式,因为 rmarkdown 将为您选择格式。你提到的第二个问题是 dplyr 显示启动消息。你可以用 message = FALSE 在你的区块选项。所以我建议:

    ```{r echo = FALSE, message = FALSE}
    library(dplyr)
    library(kableExtra)
    library(knitr)
    
    x <- seq(1, 9, by = 1)
    
    kable(x, booktabs = TRUE, caption = "A KnitR Kable")
    ```
    

    另一个好的提示是尝试使用 render() 来自的命令 标记 如果你有问题直接使用从rstudio编织。它常常使错误更加明显。这是语法:

    rmarkdown::render("C:/path/to/file.Rmd", output_format = "all")
    

    注意,您可以在这里指定输出文件格式。全部意味着将生成标题中指定的所有输出格式。例如:

    ---
    title: ''
    output:
      pdf_document: default
      html_document: default
    ---
    

    在这种情况下,上面的命令将输出一个html和pdf文件。如果无法输出pdf文件,则很可能缺少乳胶安装。我第二次推荐 tinytex ,但您也可以查看miktex或texlive。

    编辑:感谢@camille的评论,我意识到 格式='乳胶' 当编织成pdf时工作良好,只有当编织成html时才会表现不好。

    推荐文章