--- title: "Make a Heatmap Table using `ztable`" author: "Keon-Woong Moon" date: "`r Sys.Date()`" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{heatmapTable} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r setup, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = NA, message=FALSE ) ``` ## Installation You can install R package "ztable" from CRAN. Current version is 0.1.8. ```{r,eval=FALSE} install.packages("ztable") ``` To make a heatmap table, you have to install the developmental version of ztable from github. Current github version is 0.2.0. ```{r,eval=FALSE} if(!require(devtools)) install.packages("devtools") devtools::install_github("cardiomoon/ztable") ``` ## Introduction A heat map (or heatmap) is a graphical representation of data where the individual values contained in a matrix are represented as colors. You can summarize the the diagnosis and smoking status of 857 patients of acute coronary syndrome(acs) using table() function. ```{r} require(moonBook) x=table(acs$Dx,acs$smoking) x ``` ## Basic Table You can make `html` or `LaTex` table easily with ztable. ```{r,results="asis"} library(ztable) library(magrittr) options(ztable.type="html") z=ztable(x) print(z,caption="Table 1. Basic Table") ``` ## Formatting the Table You can change the background color and font color of `ztable` using addCellColor function. For example, you can change the cell color of the 3rd row, 2nd column. Please keep in mind that the ztable count colname and rowname. ```{r,results="asis"} z %>% addCellColor(4,3,bg="orange",color="white") %>% print(caption="Table 2. Add Cell Color") ``` ## Conditional Formatting You can select rows with logical expression. You can select cols with column name. ```{r,results='asis'} ztable(head(iris),caption="Table 3. Conditinoal Formatting: Sepal.Width >= 3.5") %>% addRowColor(rows=1,bg="#C90000",color="white") %>% addCellColor(condition=Sepal.Width>=3.5,cols=Sepal.Width,color="red") ``` ## Make a Heatmap Table You can make a heatmap table in which background colors representing the values. With makeHeatmap() function, you can make a heatmap table easily. The makeHeatmap() function apply the "Reds" palette from RColorBrewer package. ```{r,results="asis"} z %>% makeHeatmap() %>% print(caption="Table 4. Heatmap Table") ``` ## Heatmap Table with desired palette You can change the palette with palette argument. For example, you can use the "Blue" palette. ```{r,results='asis'} ztable(head(mtcars)) %>% makeHeatmap(palette="Blues") %>% print(caption="Table 5. Heatmap table with 'Blue' palette") ``` ## Heatmap Table with user-defined palette With the gradientColor() function, you makes sequential colour gradient palette easily. ```{r,fig.width=8,out.width='100%'} mycolor=gradientColor(low="yellow",mid="orange",high="red",n=20,plot=TRUE) mycolor ``` ```{r,results='asis'} ztable(head(mtcars[1:5])) %>% makeHeatmap(mycolor=mycolor) %>% print(caption="Table 6. Heatmap table with user-defined palette") ``` ## Heatmap Table with non-numeric data You can make heatmap table with data containing non-numeric columns. Only columns with numeric data affected by this function. ```{r,results='asis'} ztable(head(acs[1:10])) %>% makeHeatmap %>% print(caption="Table 7. Heatmap table with non-numeric data") ``` ## Selected Columnwise Heatmap Table You can make selected columnwise heatmap table. You can select columns with `cols` argument. To make columnwise heatmap table, set the `margin` argument 2. ```{r,results='asis'} ztable(head(mtcars)) %>% makeHeatmap(palette="YlOrRd",cols=c(1,3,4),margin=2) %>% print(caption="Table 8. Columnwise heatmap table") ``` ## Selected Rowwise Heatmap Table You can make selected columnwise heatmap table. You can select rows with `rows` argument. To make rowwise heatmap table, set the `margin` argument 1. ```{r,results='asis'} ztable(t(head(mtcars))) %>% makeHeatmap(palette="YlOrRd",rows=c(1,3,4),margin=1) %>% print(caption="Table 9. Rowwise heatmap table") ```