Hao Zhu | e10cfd3 | 2017-02-21 16:41:14 -0500 | [diff] [blame] | 1 | #' kableExtra |
| 2 | #' |
Hao Zhu | 76281fe | 2017-07-03 19:33:09 -0400 | [diff] [blame] | 3 | #' @description When we are talking about table generators in R, |
| 4 | #' [knitr](https://yihui.name/knitr/)'s `kable()` function wins lots of flavor |
| 5 | #' by its ultimate simplicity. Unlike those powerful table rendering engines |
| 6 | #' such as [`xtable`](https://CRAN.R-project.org/package=xtable), the philosophy |
| 7 | #' behind [`knitr::kable()`](https://rdrr.io/cran/knitr/man/kable.html) is to |
| 8 | #' make it easy for programmers to use. Just as it claimed in its |
| 9 | #' function description, "this is a very simple table generator. It is simple |
| 10 | #' by design. It is not intended to replace any other R packages for making |
| 11 | #' tables. - Yihui". |
| 12 | #' |
| 13 | #' However, the ultimate simplicity of `kable()` also brought troubles to some |
| 14 | #' of us, especially for new R users, who may not have a lot of experience on |
| 15 | #' generating tables in R. It is not rare to see people including experienced |
| 16 | #' users asking questions like how to center/left-align a table on Stack |
| 17 | #' Overflow. Also, for me personally, I found myself repeatedly parsing CSS |
| 18 | #' into `kable()` for some very simple features like striped lines. For LaTeX, |
| 19 | #' it's even worse since I'm almost Stack Overflow dependent for LaTeX... |
| 20 | #' That's why this package `kableExtra` was created. |
| 21 | #' |
| 22 | #' I hope with `kableExtra`, you can |
| 23 | #' - Use default base `kable()` (Or a good alternative for markdown tables is |
| 24 | #' `pander::pander()`) for all simple tables |
| 25 | #' - Use `kable()` with `kableExtra` to generate 90 % of complex/advanced |
| 26 | #' tables in either HTML or LaTeX |
| 27 | #' - Only have to mess with raw HTML/LaTeX in the last 10% cases where |
| 28 | #' `kableExtra` cannot solve the problem |
| 29 | #' |
Hao Zhu | 4b0c51e | 2017-08-01 15:21:07 -0400 | [diff] [blame] | 30 | #' For a full package documentation, please visit the |
| 31 | #' [package documentation site](http://haozhu233.github.io/kableExtra/) |
| 32 | #' for more information |
| 33 | #' |
Hao Zhu | 76281fe | 2017-07-03 19:33:09 -0400 | [diff] [blame] | 34 | #' @section Features: |
| 35 | #' **Pipable syntax:** `kableExtra` is NOT a table generating package. It is a |
| 36 | #' package that can "add features" to a `kable` output using a syntax |
| 37 | #' that every useR loves - the [pipe](http://r4ds.had.co.nz/pipes.html). |
| 38 | #' We see similar approaches to deal with plots in packages like `ggvis` and |
| 39 | #' `plotly`. There is no reason why we cannot use it with tables. |
| 40 | #' |
| 41 | #' **Unified functions for both HTML and PDF:** Most functionalities in |
| 42 | #' `kableExtra` can work in both HTML and PDF. In fact, as long as you |
| 43 | #' specifies format in `kable` (which can be set globally through option |
| 44 | #' `knitr.table.format`), functions in this package will pick the right way |
| 45 | #' to manipulate the table be themselves. As a result, if users want to left |
| 46 | #' align the table, `kable_styling(kable(...), position = "left")` will work |
| 47 | #' in both HTML and PDF. |
| 48 | #' |
| 49 | #' @note If you found a feature on the documentation site that is not available |
| 50 | #' in the version of `kableExtra` you are using, try to install the pre-release |
| 51 | #' version from github. You can do so by running |
| 52 | #' `devtools::install_github("haozhu233/kableExtra")`. |
| 53 | #' |
| 54 | #' Also, note that This package can load required LaTeX package automatically in |
| 55 | #' vanilla rmarkdown. For customized rmarkdown templates, it is recommended to |
| 56 | #' load related LaTeX packages manually. |
| 57 | #' |
Hao Zhu | f7994dd | 2017-02-27 16:58:42 -0500 | [diff] [blame] | 58 | #' @importFrom stringr str_count str_split str_match str_detect str_match_all |
Hao Zhu | b2b4199 | 2017-10-03 12:50:03 -0400 | [diff] [blame] | 59 | #' str_extract str_replace_all str_trim str_extract_all str_sub str_replace |
Hao Zhu | 2623412 | 2017-02-22 15:34:33 -0500 | [diff] [blame] | 60 | #' @importFrom xml2 read_xml xml_attr xml_has_attr xml_attr<- read_html |
Hao Zhu | f7994dd | 2017-02-27 16:58:42 -0500 | [diff] [blame] | 61 | #' xml_child xml_children xml_name xml_add_sibling xml_add_child xml_text |
Hao Zhu | 9bab153 | 2017-07-24 15:08:41 -0400 | [diff] [blame] | 62 | #' xml_remove write_xml xml_text<- |
Hao Zhu | 2623412 | 2017-02-22 15:34:33 -0500 | [diff] [blame] | 63 | #' @importFrom rvest html_table |
Hao Zhu | 68b5bbf | 2018-03-26 11:30:34 -0400 | [diff] [blame] | 64 | #' @importFrom knitr knit_meta_add include_graphics knit_print asis_output kable |
Hao Zhu | eaef431 | 2018-01-10 17:05:23 -0500 | [diff] [blame] | 65 | #' @importFrom rmarkdown latex_dependency html_dependency_bootstrap |
Hao Zhu | 73cf373 | 2018-05-11 17:50:05 -0400 | [diff] [blame] | 66 | #' html_dependency_jquery pandoc_self_contained_html |
Hao Zhu | f7994dd | 2017-02-27 16:58:42 -0500 | [diff] [blame] | 67 | #' @importFrom magrittr %>% |
Hao Zhu | 76f0eb6 | 2018-09-15 12:38:33 -0400 | [diff] [blame] | 68 | #' @importFrom utils read.csv head capture.output |
Hao Zhu | b35f188 | 2017-10-10 16:34:16 -0400 | [diff] [blame] | 69 | #' @importFrom readr read_lines read_file |
Hao Zhu | 9ce317e | 2017-10-12 18:19:55 -0400 | [diff] [blame] | 70 | #' @importFrom scales rescale |
| 71 | #' @importFrom viridisLite viridis |
Hao Zhu | 064990d | 2017-10-17 18:08:42 -0400 | [diff] [blame] | 72 | #' @importFrom stats ave |
Hao Zhu | 6290fdd | 2017-10-24 00:10:32 -0400 | [diff] [blame] | 73 | #' @importFrom grDevices col2rgb |
Hao Zhu | 5b71b2d | 2018-03-26 16:31:09 -0400 | [diff] [blame] | 74 | #' @importFrom rstudioapi isAvailable viewer |
Hao Zhu | b548aac | 2018-09-18 13:29:01 -0400 | [diff] [blame] | 75 | #' @importFrom glue glue |
Hao Zhu | 7f8b684 | 2018-10-23 17:41:13 -0400 | [diff] [blame] | 76 | #' @importFrom tools file_ext file_path_sans_ext |
| 77 | #' @importFrom webshot webshot |
Hao Zhu | eaef431 | 2018-01-10 17:05:23 -0500 | [diff] [blame] | 78 | #' @import htmltools |
Hao Zhu | e10cfd3 | 2017-02-21 16:41:14 -0500 | [diff] [blame] | 79 | #' @name kableExtra-package |
| 80 | #' @aliases kableExtra |
| 81 | #' @docType package |
| 82 | #' @keywords package |
| 83 | NULL |
Hao Zhu | 2623412 | 2017-02-22 15:34:33 -0500 | [diff] [blame] | 84 | |
| 85 | #' @export |
| 86 | magrittr::`%>%` |
Hao Zhu | 68b5bbf | 2018-03-26 11:30:34 -0400 | [diff] [blame] | 87 | |
| 88 | #' @export |
| 89 | knitr::kable |