Knitr Kable Table 未在 R markdown 中生成字幕

Knitr Kable Table not producing captions in R markdown

我已阅读有关此主题的各种帖子,但仍有问题。导出为 pdf 或 html 时,我可以生成 nice-looking table,但它不包含标题!

row1 <- c("a", "b", "c")
row2 <- c("d", "e", "f")
data <- as.data.frame(rbind(row1, row2))
kable(data, caption = "head")

如果我尝试 运行 代码,我没有得到所需的标题。

我的 session 信息如下。

Session info -------------------------------------------------------------------------------------------------------------------------------------------------------------
 setting  value                       
 version  R version 3.4.3 (2017-11-30)
 system   x86_64, mingw32             
 ui       RStudio (1.1.423)           
 language en                          
 collate  English_United States.1252  
 tz       America/Los_Angeles         
 date     2018-10-03                  

Packages -----------------------------------------------------------------------------------------------------------------------------------------------------------------
 package   * version date       source        
 backports   1.1.2   2017-12-13 CRAN (R 3.4.3)
 base64enc   0.1-3   2015-07-28 CRAN (R 3.4.1)
 digest      0.6.15  2018-01-28 CRAN (R 3.4.3)
 evaluate    0.10.1  2017-06-24 CRAN (R 3.4.4)
 glue        1.2.0   2017-10-29 CRAN (R 3.4.4)
 graphics  * 3.4.3   2017-12-06 local         
 grDevices * 3.4.3   2017-12-06 local         
 highr       0.7     2018-06-09 CRAN (R 3.4.4)
 htmltools   0.3.6   2017-04-28 CRAN (R 3.4.4)
 jsonlite  * 1.5     2017-06-01 CRAN (R 3.4.4)
 knitr       1.20    2018-02-20 CRAN (R 3.4.4)
 magrittr    1.5     2014-11-22 CRAN (R 3.4.4)
 markdown    0.8     2017-04-20 CRAN (R 3.4.4)
 methods   * 3.4.3   2017-12-06 local         
 mime        0.5     2016-07-07 CRAN (R 3.4.1)
 Rcpp        0.12.16 2018-03-13 CRAN (R 3.4.4)
 rmarkdown   1.10    2018-06-11 CRAN (R 3.4.4)
 rprojroot   1.3-2   2018-01-03 CRAN (R 3.4.4)
 stats     * 3.4.3   2017-12-06 local         
 stringi     1.1.7   2018-03-12 CRAN (R 3.4.4)
 stringr   * 1.3.0   2018-02-19 CRAN (R 3.4.4)
 tinytex     0.7     2018-08-22 CRAN (R 3.4.4)
 tools       3.4.3   2017-12-06 local         
 utils     * 3.4.3   2017-12-06 local         
 xfun        0.3     2018-07-06 CRAN (R 3.4.4)
 yaml        2.1.18  2018-03-08 CRAN (R 3.4.4)

我想这可能与安装的软件包有关?

library(httr)
library(dplyr)
library(scales)
library(tidyverse)
library(jsonlite)
library(skimr)
library(lubridate)
library(AER)
library(MASS)
library(countreg)

knitr::opts_chunk$set(tidy.opts=list(width.cutoff=60),tidy=TRUE)
knitr::opts_chunk$set(echo = TRUE)

我将标题定义为启动代码块的参数。例如:

‘’’{r, fig.cap = “head”}

row1 <- c("a", "b", "c")
row2 <- c("d", "e", "f")
data <- as.data.frame(rbind(row1, row2))
kable(data)

‘’’

我发现我必须在RMD文件的开头加载knitr包。然后,字幕出现了。谢谢!

我之前遇到过类似的问题。我意识到在不同的包中有 多个 称为 kable 的命令。例如,一个名为 'skimr' 的包对这个命令做了一些不同的事情。当我专门引用包时 knitr::kable,标题出现了。

library(knitr)
library(kableExtra)
library(skimr)
row1 <- c("a", "b", "c")
row2 <- c("d", "e", "f")

这里没有标题,因为它使用的是 skimr 版本的命令

data <- as.data.frame(rbind(row1, row2))
knitr::kable(data, caption = "head") %>% kable_styling()

以下包含header因为我引用了正确的(knitr)库

data <- as.data.frame(rbind(row1, row2))
kable(data, caption = "head") %>% kable_styling()

我遇到了同样的问题,可以通过在 kable.

的参数中指定格式来解决它
row1 <- c("a", "b", "c")
row2 <- c("d", "e", "f")
data <- as.data.frame(rbind(row1, row2))
kable(data, format = "pandoc", caption = "head")

软件包 kableExtra 有效地管理了这一点。 尝试:

library(kableExtra)

row1 <- c("a", "b", "c")
row2 <- c("d", "e", "f")

as.data.frame(rbind(row1, row2)) %>% 
 kbl(caption = "head") %>%
 kable_styling()