Reputation: 487
in R markdown, knitting to PDF, kable allows to include a 'caption' (which really is a table title), but I'd like to add another caption below the table in smaller font. Any ideas how to do that? (I don't want to just add text below in the main markdown doc because then it's number and not part of the table float).
Here's some code example:
library(knitr)
name <- c('Na~2~O', 'Ca', 'Ba')
value <- c(2,3,5)
data <- data.frame(name, value)
rownames(data) <- data[,1]
data$name <- NULL
kable(data, format = "pandoc", caption = 'some title')
Upvotes: 2
Views: 9989
Reputation: 254
Using the kable function, here is how to do it from this page: https://haozhu233.github.io/kableExtra/awesome_table_in_html.html
That page is just a good resource in general. Here is what they say regarding footnotes:
There are four notation systems in footnote, namely general, number, alphabet and symbol. The last three types of footnotes will be labeled with corresponding marks while general won’t be labeled. You can pick any one of these systems or choose to display them all for fulfill the APA table footnotes requirements.
kable(dt, align = "c") %>%
kable_styling(full_width = F) %>%
footnote(general = "Here is a general comments of the table. ",
number = c("Footnote 1; ", "Footnote 2; "),
alphabet = c("Footnote A; ", "Footnote B; "),
symbol = c("Footnote Symbol 1; ", "Footnote Symbol 2"))
Upvotes: 7
Reputation: 73612
You could use xtable
. For that you need to put your data into a list and give it an attribute "message".
```{r table1, results='asis', message=FALSE, echo = FALSE}
data <- list(data)
attr(data, "message") <- c("\\textit{Note: }Here you can enter some",
"text as your desired caption",
"there's somewhere a workaround",
"not needing to put in text like this",
"but at least it works.")
library(xtable)
print(xtableList(data, caption="some title")
, caption.placement = "top"
, sanitize.text.function = identity
)
```
Yields
Data
name <- c('Na\\textsubscript{2}O', 'Ca', 'Ba')
value <- c(2,3,5)
data <- data.frame(name, value)
rownames(data) <- data[,1]
data$name <- NULL
Note: In addition, for better formatting this solution should also be applicable here (not tried yet though).
Upvotes: 0