README.md

title: "Package ztable" author: "Keon-Woong Moon" date: "2015-02-12" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{ztable} %\VignetteEngine{knitr::rmarkdown} \usepackage[utf8]{inputenc}

Introduction

Table Show

Package "ztable" make everything possible about table. Basically, An object of "ztable" made from a data.frame. The default output format of ztable is RStudio::viewer or web-browser format(type="viewer"). So if you want to use ztable in a "html" format, you should change the parameter ztable.type to "html". If you want to use ztable in latex format, you should change the parameter ztable.type to "latex".

require(ztable)
options(ztable.type="html")
z=ztable(head(iris))
z

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.10 3.50 1.40 0.20 setosa 2 4.90 3.00 1.40 0.20 setosa 3 4.70 3.20 1.30 0.20 setosa 4 4.60 3.10 1.50 0.20 setosa 5 5.00 3.60 1.40 0.20 setosa 6 5.40 3.90 1.70 0.40 setosa You can change the position of data in each cell by adjusting the parameter "align".

z=ztable(head(iris),align="cccccc")
z

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.10 3.50 1.40 0.20 setosa 2 4.90 3.00 1.40 0.20 setosa 3 4.70 3.20 1.30 0.20 setosa 4 4.60 3.10 1.50 0.20 setosa 5 5.00 3.60 1.40 0.20 setosa 6 5.40 3.90 1.70 0.40 setosa

You can add column groups to ztable using addcgroup function. The n.cgroup means how much columns included in each row group.

cgroup=c("Sepal","Petal","Species")
n.cgroup=c(2,2,1)
z=addcgroup(z,cgroup=cgroup,n.cgroup=n.cgroup)
z

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Sepal   Petal   Species   Sepal.Length Sepal.Width   Petal.Length Petal.Width   Species 1 5.10 3.50 1.40 0.20 setosa 2 4.90 3.00 1.40 0.20 setosa 3 4.70 3.20 1.30 0.20 setosa 4 4.60 3.10 1.50 0.20 setosa 5 5.00 3.60 1.40 0.20 setosa 6 5.40 3.90 1.70 0.40 setosa

You can add row groups to ztable using addrgroup function. The n.rgroup means how much rows included in each row group. The cspan.rgroup means how much columns occupied by row group name.

rgroup=c("OneToThree","Four","FiveToSix")
n.rgroup=c(3,1,2)

z=addrgroup(z,rgroup=rgroup,n.rgroup=n.rgroup,cspan.rgroup=1)
z

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Sepal   Petal   Species   Sepal.Length Sepal.Width   Petal.Length Petal.Width   Species OneToThree 1 5.10 3.50 1.40 0.20 setosa 2 4.90 3.00 1.40 0.20 setosa 3 4.70 3.20 1.30 0.20 setosa Four 4 4.60 3.10 1.50 0.20 setosa FiveToSix 5 5.00 3.60 1.40 0.20 setosa 6 5.40 3.90 1.70 0.40 setosa

print(z,type="latex")

\begin{table}[!hbtp] \begin{center} \begin{normalsize} \color{black} \begin{tabular}{ccccccccc} \hline \cellcolor{white} &\multicolumn{2}{c}{Sepal}&&\multicolumn{2}{c}{Petal}&&\multicolumn{1}{c}{Species}\ \cline{2-3}\cline{5-6}\cline{8-8} &Sepal.Length&Sepal.Width&&Petal.Length&Petal.Width&&Species\ \hline \textbf{OneToThree}&&&&&&&\ 1&5.10&3.50&&1.40&0.20&&setosa\ 2&4.90&3.00&&1.40&0.20&&setosa\ 3&4.70&3.20&&1.30&0.20&&setosa\ \textbf{Four}&&&&&&&\ 4&4.60&3.10&&1.50&0.20&&setosa\ \textbf{FiveToSix}&&&&&&&\ 5&5.00&3.60&&1.40&0.20&&setosa\ 6&5.40&3.90&&1.70&0.40&&setosa\ \hline \end{tabular} \end{normalsize} \end{center} \end{table} \color{black}

You can add another colname(subcolname), the N count for example. The length of subcolnames should be same with column count of data.frame. You can use "NA" and the column name spans 2 rows.

ncount=c(123,120,123,124)
sub=paste("(N=",ncount,")",sep="")
z=addSubColNames(z,c(sub,NA))
z

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Sepal   Petal   Species   Sepal.Length Sepal.Width   Petal.Length Petal.Width   Species   (N=123) (N=120)   (N=123) (N=124)   OneToThree 1 5.10 3.50 1.40 0.20 setosa 2 4.90 3.00 1.40 0.20 setosa 3 4.70 3.20 1.30 0.20 setosa Four 4 4.60 3.10 1.50 0.20 setosa FiveToSix 5 5.00 3.60 1.40 0.20 setosa 6 5.40 3.90 1.70 0.40 setosa

You can merge cells by spanRow or spanCol function.

z=spanRow(z,col=2,from=4,to=7,"orange")
z=spanRow(z,col=3,from=5,to=7,"platinum")
z=spanRow(z,col=4,from=6,to=7,"cyan")
z=spanRow(z,col=5,from=5,to=7,"yellow")
z=spanRow(z,col=6,from=3,to=5,"yellow")
z

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Sepal   Petal   Species   Sepal.Length Sepal.Width   Petal.Length Petal.Width   Species   (N=123) (N=120)   (N=123) (N=124)   OneToThree 1 5.10 3.50 1.40 0.20 setosa 2 4.90 3.00 1.40 0.20 setosa 3 4.70 3.20 1.30 0.20 Four 4 3.10 1.50 0.20 FiveToSix 5 1.40 setosa 6 setosa

z=spanCol(z,row=2,from=3,to=4,"yellow")
z=spanCol(z,row=3,from=4,to=5,"lightblue")
z

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Sepal   Petal   Species   Sepal.Length Sepal.Width   Petal.Length Petal.Width   Species   (N=123) (N=120)   (N=123) (N=124)   OneToThree 1 5.10 3.50 0.20 setosa 2 4.90 3.00 1.40 setosa 3 4.70 3.20 1.30 0.20 Four 4 3.10 1.50 0.20 FiveToSix 5 1.40 setosa 6 setosa

You can add or adjust vertical lines of table by vlines function

vlines(z,type="all")       # type=1 gets same result

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Sepal Petal Species   Sepal.Length Sepal.Width Petal.Length Petal.Width Species   (N=123) (N=120) (N=123) (N=124) OneToThree 1 5.10 3.50 0.20 setosa 2 4.90 3.00 1.40 setosa 3 4.70 3.20 1.30 0.20 Four 4 3.10 1.50 0.20 FiveToSix 5 1.40 setosa 6 setosa

z=vlines(z,type="none")      # type=0 gets same result
z

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Sepal   Petal   Species   Sepal.Length Sepal.Width   Petal.Length Petal.Width   Species   (N=123) (N=120)   (N=123) (N=124)   OneToThree 1 5.10 3.50 0.20 setosa 2 4.90 3.00 1.40 setosa 3 4.70 3.20 1.30 0.20 Four 4 3.10 1.50 0.20 FiveToSix 5 1.40 setosa 6 setosa

z=vlines(z,add=c(1,2,5))
z

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Sepal   Petal   Species   Sepal.Length Sepal.Width   Petal.Length Petal.Width   Species   (N=123) (N=120)   (N=123) (N=124)   OneToThree 1 5.10 3.50 0.20 setosa 2 4.90 3.00 1.40 setosa 3 4.70 3.20 1.30 0.20 Four 4 3.10 1.50 0.20 FiveToSix 5 1.40 setosa 6 setosa

Please note that if you add vertical lines between groups, the space between groups(empty columns) disappeared and vice versa.

Merge two tables

You can bind two or more data.frame by cbind function.

t1=head(iris,10)[,c(1,3,5)]
t2=tail(iris,10)[,c(1,3,5)]
t=cbind(t1,t2)
z=ztable(t,caption="Table 1. Top 10 and Last 10 Data from iris",align="ccccccc")
z

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Table 1. Top 10 and Last 10 Data from iris   Sepal.Length Petal.Length Species Sepal.Length Petal.Length Species 1 5.10 1.40 setosa 6.70 5.60 virginica 2 4.90 1.40 setosa 6.90 5.10 virginica 3 4.70 1.30 setosa 5.80 5.10 virginica 4 4.60 1.50 setosa 6.80 5.90 virginica 5 5.00 1.40 setosa 6.70 5.70 virginica 6 5.40 1.70 setosa 6.70 5.20 virginica 7 4.60 1.40 setosa 6.30 5.00 virginica 8 5.00 1.50 setosa 6.50 5.20 virginica 9 4.40 1.40 setosa 6.20 5.40 virginica 10 4.90 1.50 setosa 5.90 5.10 virginica

And then, you can add column groups, row groups, add row colors, add column colors, add cell colors, and merge cells

cgroup=c("Top 10","Last 10")
n.cgroup=c(3,3)
z=addcgroup(z,cgroup=cgroup,n.cgroup=n.cgroup)
z 

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Table 1. Top 10 and Last 10 Data from iris Top 10   Last 10   Sepal.Length Petal.Length Species   Sepal.Length Petal.Length Species 1 5.10 1.40 setosa 6.70 5.60 virginica 2 4.90 1.40 setosa 6.90 5.10 virginica 3 4.70 1.30 setosa 5.80 5.10 virginica 4 4.60 1.50 setosa 6.80 5.90 virginica 5 5.00 1.40 setosa 6.70 5.70 virginica 6 5.40 1.70 setosa 6.70 5.20 virginica 7 4.60 1.40 setosa 6.30 5.00 virginica 8 5.00 1.50 setosa 6.50 5.20 virginica 9 4.40 1.40 setosa 6.20 5.40 virginica 10 4.90 1.50 setosa 5.90 5.10 virginica

rgroup=c("Top 1-3","Top 4-6"," Top 7-10")
n.rgroup=c(3,3,4)
z=addrgroup(z,rgroup=rgroup,n.rgroup=n.rgroup,cspan.rgroup=1)
z

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Table 1. Top 10 and Last 10 Data from iris Top 10   Last 10   Sepal.Length Petal.Length Species   Sepal.Length Petal.Length Species Top 1-3 1 5.10 1.40 setosa 6.70 5.60 virginica 2 4.90 1.40 setosa 6.90 5.10 virginica 3 4.70 1.30 setosa 5.80 5.10 virginica Top 4-6 4 4.60 1.50 setosa 6.80 5.90 virginica 5 5.00 1.40 setosa 6.70 5.70 virginica 6 5.40 1.70 setosa 6.70 5.20 virginica Top 7-10 7 4.60 1.40 setosa 6.30 5.00 virginica 8 5.00 1.50 setosa 6.50 5.20 virginica 9 4.40 1.40 setosa 6.20 5.40 virginica 10 4.90 1.50 setosa 5.90 5.10 virginica

z=addRowColor(z,c(5,10),"pink")
z=addColColor(z,4,"amber")
z=addCellColor(z,rows=c(5,10),cols=4,"orange")
z

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Table 1. Top 10 and Last 10 Data from iris Top 10   Last 10   Sepal.Length Petal.Length Species   Sepal.Length Petal.Length Species Top 1-3 1 5.10 1.40 setosa 6.70 5.60 virginica 2 4.90 1.40 setosa 6.90 5.10 virginica 3 4.70 1.30 setosa 5.80 5.10 virginica Top 4-6 4 4.60 1.50 setosa 6.80 5.90 virginica 5 5.00 1.40 setosa 6.70 5.70 virginica 6 5.40 1.70 setosa 6.70 5.20 virginica Top 7-10 7 4.60 1.40 setosa 6.30 5.00 virginica 8 5.00 1.50 setosa 6.50 5.20 virginica 9 4.40 1.40 setosa 6.20 5.40 virginica 10 4.90 1.50 setosa 5.90 5.10 virginica

z=spanCol(z,row=2,from=2,to=3,color="lightcyan")
z=spanRow(z,col=7,from=7,to=8,color="cyan")
z

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Table 1. Top 10 and Last 10 Data from iris Top 10   Last 10   Sepal.Length Petal.Length Species   Sepal.Length Petal.Length Species Top 1-3 1 5.10 setosa 6.70 5.60 virginica 2 4.90 1.40 setosa 6.90 5.10 virginica 3 4.70 1.30 setosa 5.80 5.10 virginica Top 4-6 4 4.60 1.50 setosa 6.80 5.90 virginica 5 5.00 1.40 setosa 6.70 5.70 virginica 6 5.40 1.70 setosa 6.70 5.20 virginica Top 7-10 7 4.60 1.40 setosa 6.30 5.00 8 5.00 1.50 setosa 6.50 5.20 virginica 9 4.40 1.40 setosa 6.20 5.40 virginica 10 4.90 1.50 setosa 5.90 5.10 virginica

And you can adjust vertical lines, too.

vlines(z,type=0)  # No vertical lines

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Table 1. Top 10 and Last 10 Data from iris Top 10   Last 10   Sepal.Length Petal.Length Species   Sepal.Length Petal.Length Species Top 1-3 1 5.10 setosa 6.70 5.60 virginica 2 4.90 1.40 setosa 6.90 5.10 virginica 3 4.70 1.30 setosa 5.80 5.10 virginica Top 4-6 4 4.60 1.50 setosa 6.80 5.90 virginica 5 5.00 1.40 setosa 6.70 5.70 virginica 6 5.40 1.70 setosa 6.70 5.20 virginica Top 7-10 7 4.60 1.40 setosa 6.30 5.00 8 5.00 1.50 setosa 6.50 5.20 virginica 9 4.40 1.40 setosa 6.20 5.40 virginica 10 4.90 1.50 setosa 5.90 5.10 virginica

vlines(z,type=1)  # Vertical lines for all column

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Table 1. Top 10 and Last 10 Data from iris Top 10 Last 10   Sepal.Length Petal.Length Species Sepal.Length Petal.Length Species Top 1-3 1 5.10 setosa 6.70 5.60 virginica 2 4.90 1.40 setosa 6.90 5.10 virginica 3 4.70 1.30 setosa 5.80 5.10 virginica Top 4-6 4 4.60 1.50 setosa 6.80 5.90 virginica 5 5.00 1.40 setosa 6.70 5.70 virginica 6 5.40 1.70 setosa 6.70 5.20 virginica Top 7-10 7 4.60 1.40 setosa 6.30 5.00 8 5.00 1.50 setosa 6.50 5.20 virginica 9 4.40 1.40 setosa 6.20 5.40 virginica 10 4.90 1.50 setosa 5.90 5.10 virginica

Basic Use

Package "ztable" consist of one function: ztable. It's main function is creating zebra zebra striping tables(tables with alternating row colors) in both Latex and html formats easily from mainly data.frame or an R object such as matrix, lm, aov, anova, glm and coxph objects. It is fully customizable and you can get similar tables in both latex and html format without changing source. The default output is Rstudio::viewer, but you can get html format by adding just one sentence.

options(ztable.type="html")

It's usage is somewhat similar to xtable, but very simple.

data.frame

Basic Use

It's use is very simple. Just use 'ztable()' function. You can get the zebra stripig table by set the parameter zebra=1 (default value is NULL)

require(ztable)
options(ztable.type="html")
options(ztable.zebra=1)
options(ztable.zebra.color="platinum")
options(ztable.colnames.bold=TRUE)
ztable(head(mtcars))

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

  mpg cyl disp hp drat wt qsec vs am gear carb Mazda RX4 21.00 6.00 160.00 110.00 3.90 2.62 16.46 0.00 1.00 4.00 4.00 Mazda RX4 Wag 21.00 6.00 160.00 110.00 3.90 2.88 17.02 0.00 1.00 4.00 4.00 Datsun 710 22.80 4.00 108.00 93.00 3.85 2.32 18.61 1.00 1.00 4.00 1.00 Hornet 4 Drive 21.40 6.00 258.00 110.00 3.08 3.21 19.44 1.00 0.00 3.00 1.00 Hornet Sportabout 18.70 8.00 360.00 175.00 3.15 3.44 17.02 0.00 0.00 3.00 2.00 Valiant 18.10 6.00 225.00 105.00 2.76 3.46 20.22 1.00 0.00 3.00 1.00

Tailoring zebra striping

You can get non-zebra table by change parameter zebra=NULL or change zebra striping on even rows by zebra=2.

ztable(head(mtcars),zebra=NULL,size=3,
       caption="Table 1. Non-zebra Table with small size")

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Table 1. Non-zebra Table with small size   mpg cyl disp hp drat wt qsec vs am gear carb Mazda RX4 21.00 6.00 160.00 110.00 3.90 2.62 16.46 0.00 1.00 4.00 4.00 Mazda RX4 Wag 21.00 6.00 160.00 110.00 3.90 2.88 17.02 0.00 1.00 4.00 4.00 Datsun 710 22.80 4.00 108.00 93.00 3.85 2.32 18.61 1.00 1.00 4.00 1.00 Hornet 4 Drive 21.40 6.00 258.00 110.00 3.08 3.21 19.44 1.00 0.00 3.00 1.00 Hornet Sportabout 18.70 8.00 360.00 175.00 3.15 3.44 17.02 0.00 0.00 3.00 2.00 Valiant 18.10 6.00 225.00 105.00 2.76 3.46 20.22 1.00 0.00 3.00 1.00

Customize the caption and the font size

You can change the position of table by using parameter position. You can use "r" for right position, "l" for left position and "c" for center position(default). You can change the color of zebra striping by change the parameter zebra.color. You can also change the size of font from 1 to 10(default is 5). You can change the caption.placement("top" or "bottom") and caption.position("c" for center / "r" for right/ "l" for left).

ztable(head(mtcars[c(1:7)]),zebra=2,zebra.color="lightcyan",size=7,
       caption="Table 2. Left-sided caption at botom with large font",
       caption.placement="bottom",caption.position="l") 

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Table 2. Left-sided caption at botom with large font   mpg cyl disp hp drat wt qsec Mazda RX4 21.00 6.00 160.00 110.00 3.90 2.62 16.46 Mazda RX4 Wag 21.00 6.00 160.00 110.00 3.90 2.88 17.02 Datsun 710 22.80 4.00 108.00 93.00 3.85 2.32 18.61 Hornet 4 Drive 21.40 6.00 258.00 110.00 3.08 3.21 19.44 Hornet Sportabout 18.70 8.00 360.00 175.00 3.15 3.44 17.02 Valiant 18.10 6.00 225.00 105.00 2.76 3.46 20.22

aov object

'ztable()' can be used for 'aov' object. When used for 'aov' object, the function call is added as footer to the table. The parameter 'show.footer' can be used whether or not include footer in the table. Dafault value is TRUE.

out <- aov(mpg ~ ., data=mtcars)
ztable(out)

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

  Df Sum Sq Mean Sq F value Pr(>F) cyl 1 817.71 817.71 116.42 0.0000 disp 1 37.59 37.59 5.35 0.0309 hp 1 9.37 9.37 1.33 0.2610 drat 1 16.47 16.47 2.34 0.1406 wt 1 77.48 77.48 11.03 0.0032 qsec 1 3.95 3.95 0.56 0.4617 vs 1 0.13 0.13 0.02 0.8932 am 1 14.47 14.47 2.06 0.1659 gear 1 0.97 0.97 0.14 0.7137 carb 1 0.41 0.41 0.06 0.8122 Residuals 21 147.49 7.02 Call: aov(formula = mpg ~ ., data = mtcars)

Linear model : 'lm' object

'ztable()' can be used for 'lm' object. When used for 'lm' object, the function call is added as footer to the table, too.

fit <- lm(mpg ~ cyl + disp + wt + drat + am, data=mtcars)
ztable(fit)

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

  Estimate Std. Error t value Pr(>|t|) (Intercept) 41.2964 7.5384 5.48 0.0000 cyl -1.7940 0.6505 -2.76 0.0105 disp 0.0074 0.0123 0.60 0.5546 wt -3.5870 1.2105 -2.96 0.0064 drat -0.0936 1.5488 -0.06 0.9523 am 0.1730 1.5300 0.11 0.9109 Call: lm(formula = mpg ~ cyl + disp + wt + drat + am, data = mtcars)

Analysis of Variance Table : 'anova' object

'ztable()' can be used for 'anova' object to show the anova table. When used for 'anova' object, headings of anova are added as headings to the table. The parameter 'show.footer' can be used whether or not include footer in the table. Dafault value is TRUE.

a=anova(fit)
ztable(a)

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Analysis of Variance Table Response: mpg   Df Sum Sq Mean Sq F value Pr(>F) cyl 1 817.71 817.71 112.85 0.0000 disp 1 37.59 37.59 5.19 0.0312 wt 1 82.25 82.25 11.35 0.0024 drat 1 0.00 0.00 0.00 0.9939 am 1 0.09 0.09 0.01 0.9109 Residuals 26 188.40 7.25

This is examples of another 'anova' object. The models in this anova tables showed as table headings. You can decide whether or not include the headings in the tableby using parameter 'show.heading'(default: TRUE).

fit2 <- lm(mpg ~ cyl+wt, data=mtcars)
b=anova(fit2,fit)
ztable(b)

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Analysis of Variance Table Model 1: mpg ~ cyl + wt Model 2: mpg ~ cyl + disp + wt + drat + am   Res.Df RSS Df Sum of Sq F Pr(>F) 1 29.0 191.17 2 26.0 188.40 3.0 2.77 0.13 0.9429

ztable(b,show.heading=FALSE)

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

  Res.Df RSS Df Sum of Sq F Pr(>F) 1 29.0 191.17 2 26.0 188.40 3.0 2.77 0.13 0.9429

Generalized linear model ; 'glm' object

'ztable()' can be used for 'glm'(generalized linear model) object. In this time, 'ztable()' shows the odds ratio(OR) and 95% confidence interval as well as atandard R output.

require(survival)
## Loading required package: survival
## Loading required package: splines
data(colon)
attach(colon)
out <- glm(status ~ rx+obstruct+adhere+nodes+extent, data=colon, family=binomial)
ztable(out)

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

  Estimate Std. Error z value Pr(>|z|) OR lcl ucl (Intercept) -2.3642 0.3426 -6.90 0.0000 0.09 0.05 0.18 rxLev -0.0712 0.1203 -0.59 0.5538 0.93 0.74 1.18 rxLev+5FU -0.6135 0.1231 -4.98 0.0000 0.54 0.42 0.69 obstruct 0.2320 0.1251 1.85 0.0636 1.26 0.99 1.61 adhere 0.4164 0.1429 2.91 0.0036 1.52 1.15 2.01 nodes 0.1845 0.0183 10.06 0.0000 1.20 1.16 1.25 extent 0.6238 0.1142 5.46 0.0000 1.87 1.50 2.34 Call: glm(formula = status ~ rx + obstruct + adhere + nodes + extent, family = binomial, data = colon)

Again, 'ztable()' also shows the anova table of this model.

ztable(anova(out))

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Analysis of Deviance Table Model: binomial, link: logit Response: status Terms added sequentially (first to last)   Df Deviance Resid. Df Resid. Dev NULL 1821 2525.40 rx 2 34.84 1819 2490.56 obstruct 1 3.66 1818 2486.90 adhere 1 11.74 1817 2475.16 nodes 1 145.01 1816 2330.15 extent 1 32.59 1815 2297.55

More 'aov' object

op <- options(contrasts = c("contr.helmert", "contr.poly"))
npk.aov <- aov(yield ~ block + N*P*K, npk) 
ztable(npk.aov,zebra=1)

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

  Df Sum Sq Mean Sq F value Pr(>F) block 5 343.29 68.66 4.45 0.0159 N 1 189.28 189.28 12.26 0.0044 P 1 8.40 8.40 0.54 0.4749 K 1 95.20 95.20 6.17 0.0288 N:P 1 21.28 21.28 1.38 0.2632 N:K 1 33.14 33.14 2.15 0.1686 P:K 1 0.48 0.48 0.03 0.8628 Residuals 12 185.29 15.44 Call: aov(formula = yield ~ block + N * P * K, data = npk)

More 'lm' object

ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2, 10, 20, labels = c("Ctl","Trt"))
weight <- c(ctl, trt)
lm.D9 <- lm(weight ~ group)
ztable(lm.D9)

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

  Estimate Std. Error t value Pr(>|t|) (Intercept) 4.8465 0.1557 31.12 0.0000 group1 -0.1855 0.1557 -1.19 0.2490 Call: lm(formula = weight ~ group)

ztable(anova(lm.D9),align="|c|rrrr|r|")

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Analysis of Variance Table Response: weight   Df Sum Sq Mean Sq F value Pr(>F) group 1 0.69 0.69 1.42 0.2490 Residuals 18 8.73 0.48

More 'glm' object

counts <- c(18,17,15,20,10,20,25,13,12)
outcome <- gl(3,1,9)
treatment <- gl(3,3)
d.AD <- data.frame(treatment, outcome, counts)
glm.D93 <- glm(counts ~ outcome + treatment, family = poisson())
ztable(glm.D93)

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

  Estimate Std. Error z value Pr(>|z|) OR lcl ucl (Intercept) 2.7954 0.0831 33.64 0.0000 16.37 13.84 19.18 outcome1 -0.2271 0.1011 -2.25 0.0246 0.80 0.65 0.97 outcome2 -0.0220 0.0592 -0.37 0.7106 0.98 0.87 1.10 treatment1 -0.0000 0.1000 -0.00 1.0000 1.00 0.82 1.22 treatment2 -0.0000 0.0577 -0.00 1.0000 1.00 0.89 1.12 Call: glm(formula = counts ~ outcome + treatment, family = poisson())

Principal Components Analysis : 'prcomp' object

'ztable()' can be used in principal components analysis. Followings are examples of ztable() of 'prcomp' object.

data(USArrests)
pr1 <- prcomp(USArrests) 
ztable(pr1)

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Rotation:   PC1 PC2 PC3 PC4 Murder 0.0417 -0.0448 0.0799 -0.9949 Assault 0.9952 -0.0588 -0.0676 0.0389 UrbanPop 0.0463 0.9769 -0.2005 -0.0582 Rape 0.0752 0.2007 0.9741 0.0723

ztable(summary(pr1))

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Importance of components:   PC1 PC2 PC3 PC4 Standard deviation 83.7324 14.2124 6.4894 2.4828 Proportion of Variance 0.9655 0.0278 0.0058 0.0008 Cumulative Proportion 0.9655 0.9933 0.9991 1.0000

Survival Analysis : 'coxph' object

'ztable()' can be used in survival analysis. When used for Cox proportional hazard model, 'ztable()' showed the hazard ratio and 95% confidence interval ready for publication to medical journal.

colon$TS = Surv(time,status==1) 
out=coxph(TS~rx+obstruct+adhere+differ+extent+surg+node4,data=colon)
ztable(out)

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

  HR lcl ucl se(coef) z Pr(>|z|) rx1 0.999 0.925 1.079 0.039 -0.030 0.9764 rx2 0.871 0.829 0.915 0.025 -5.464 0.0000 obstruct 1.267 1.079 1.489 0.082 2.885 0.0039 adhere 1.181 0.991 1.409 0.090 1.856 0.0634 differ 1.219 1.067 1.394 0.068 2.906 0.0037 extent 1.523 1.298 1.787 0.082 5.152 0.0000 surg 1.274 1.104 1.469 0.073 3.319 0.0009 node4 2.359 2.059 2.702 0.069 12.383 0.0000 Call: coxph(formula = TS ~ rx + obstruct + adhere + differ + extent + surg + node4, data = colon)

Nonlinear Least Squares: 'nls' obbject

'ztable()' can be used to determine the nonlinear (weighted) least-squares estimates of the parameters of a nonlinear model. Followings are examples of ztable() of 'nls' object.

require(graphics)

DNase1 <- subset(DNase, Run == 1)

## using a selfStart model
fm1DNase1 <- nls(density ~ SSlogis(log(conc), Asym, xmid, scal),DNase1)
summary(fm1DNase1)

Formula: density ~ SSlogis(log(conc), Asym, xmid, scal)

Parameters:
     Estimate Std. Error t value Pr(>|t|)    
Asym  2.34518    0.07815   30.01 2.17e-13 ***
xmid  1.48309    0.08135   18.23 1.22e-10 ***
scal  1.04146    0.03227   32.27 8.51e-14 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.01919 on 13 degrees of freedom

Number of iterations to convergence: 0 
Achieved convergence tolerance: 3.281e-06
ztable(fm1DNase1)

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Nonlinear regression model model: density ~ SSlogis(log(conc), Asym, xmid, scal) data: DNase1   Estimate Std. Error t value Pr(>|t|) Asym 2.3452 0.0782 30.01 0.0000 xmid 1.4831 0.0814 18.23 0.0000 scal 1.0415 0.0323 32.27 0.0000

Maximum-likelihood Fitting of Univariate Distributions

'ztable()' can be used in maximum-likelihood fitting of univariate distributions. Followings are examples of ztable() of 'fitdistr' object.

require(MASS)
set.seed(123)
x <- rgamma(100, shape = 5, rate = 0.1)
a=fitdistr(x, "gamma")
ztable(a)

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

  shape rate estimate 6.487 0.137 sd 0.895 0.020 N=100, The log-likelihood=-429.18

x3 <- rweibull(100, shape = 4, scale = 100)
b=fitdistr(x3, "weibull")
ztable(b)

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

  shape scale estimate 3.855 102.462 sd 0.305 2.794 N=100, The log-likelihood=-471.68

Customize the zebra striping colors

If you wanted to use several colors for zebra striping, you can set the parameter 'zebra' to zero(e.g. zebra=0) and set the 'zebra.color' parameter with vector of your favorite colors. Your favorite colors are used to zebra striping. For your convienience, ten colors are predifned for this purpose. The predefined colors are: c("peach","peach-orange","peachpuff","peach-yellow","pear","pearl","peridot","periwinkle","pastelred", "pastelgray").

ztable(head(mtcars,15),zebra=0,zebra.color=NULL) 

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

  mpg cyl disp hp drat wt qsec vs am gear carb Mazda RX4 21.00 6.00 160.00 110.00 3.90 2.62 16.46 0.00 1.00 4.00 4.00 Mazda RX4 Wag 21.00 6.00 160.00 110.00 3.90 2.88 17.02 0.00 1.00 4.00 4.00 Datsun 710 22.80 4.00 108.00 93.00 3.85 2.32 18.61 1.00 1.00 4.00 1.00 Hornet 4 Drive 21.40 6.00 258.00 110.00 3.08 3.21 19.44 1.00 0.00 3.00 1.00 Hornet Sportabout 18.70 8.00 360.00 175.00 3.15 3.44 17.02 0.00 0.00 3.00 2.00 Valiant 18.10 6.00 225.00 105.00 2.76 3.46 20.22 1.00 0.00 3.00 1.00 Duster 360 14.30 8.00 360.00 245.00 3.21 3.57 15.84 0.00 0.00 3.00 4.00 Merc 240D 24.40 4.00 146.70 62.00 3.69 3.19 20.00 1.00 0.00 4.00 2.00 Merc 230 22.80 4.00 140.80 95.00 3.92 3.15 22.90 1.00 0.00 4.00 2.00 Merc 280 19.20 6.00 167.60 123.00 3.92 3.44 18.30 1.00 0.00 4.00 4.00 Merc 280C 17.80 6.00 167.60 123.00 3.92 3.44 18.90 1.00 0.00 4.00 4.00 Merc 450SE 16.40 8.00 275.80 180.00 3.07 4.07 17.40 0.00 0.00 3.00 3.00 Merc 450SL 17.30 8.00 275.80 180.00 3.07 3.73 17.60 0.00 0.00 3.00 3.00 Merc 450SLC 15.20 8.00 275.80 180.00 3.07 3.78 18.00 0.00 0.00 3.00 3.00 Cadillac Fleetwood 10.40 8.00 472.00 205.00 2.93 5.25 17.98 0.00 0.00 3.00 4.00

The color names used for this purpose are predefined in the data 'zcolors' included in 'ztable' package. Please type '?zcolors' in R console for help file or just type 'zcolors'. You can see 749 color names defined in data 'zcolors'.

Vertical striping

If you wanted to vertical striping table, you can get it by set the parameter zebra.type 2. You can change the ztables parameters when printing.

z1=ztable(head(iris),zebra=2)
z1

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.10 3.50 1.40 0.20 setosa 2 4.90 3.00 1.40 0.20 setosa 3 4.70 3.20 1.30 0.20 setosa 4 4.60 3.10 1.50 0.20 setosa 5 5.00 3.60 1.40 0.20 setosa 6 5.40 3.90 1.70 0.40 setosa

print(z1,zebra.type=2)

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.10 3.50 1.40 0.20 setosa 2 4.90 3.00 1.40 0.20 setosa 3 4.70 3.20 1.30 0.20 setosa 4 4.60 3.10 1.50 0.20 setosa 5 5.00 3.60 1.40 0.20 setosa 6 5.40 3.90 1.70 0.40 setosa

print(z1,zebra=1,zebra.type=2,zebra.colnames=TRUE)

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.10 3.50 1.40 0.20 setosa 2 4.90 3.00 1.40 0.20 setosa 3 4.70 3.20 1.30 0.20 setosa 4 4.60 3.10 1.50 0.20 setosa 5 5.00 3.60 1.40 0.20 setosa 6 5.40 3.90 1.70 0.40 setosa

More tailoring zebra striping

You can update parameters of ztable with 'update_ztable' function.

options(ztable.zebra.color=NULL)
(z1=ztable(head(iris),zebra=0,zebra.type=2))

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.10 3.50 1.40 0.20 setosa 2 4.90 3.00 1.40 0.20 setosa 3 4.70 3.20 1.30 0.20 setosa 4 4.60 3.10 1.50 0.20 setosa 5 5.00 3.60 1.40 0.20 setosa 6 5.40 3.90 1.70 0.40 setosa

You can change the background color of colnames rows by setting zebra.colnames=TRUE.

update_ztable(z1,colnames.bold=TRUE,zebra.colnames=TRUE)

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.10 3.50 1.40 0.20 setosa 2 4.90 3.00 1.40 0.20 setosa 3 4.70 3.20 1.30 0.20 setosa 4 4.60 3.10 1.50 0.20 setosa 5 5.00 3.60 1.40 0.20 setosa 6 5.40 3.90 1.70 0.40 setosa

You can customize the striping when printing.

print(z1,zebra.color=c(rep("white",5),"peach"),zebra.colnames=TRUE)

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.10 3.50 1.40 0.20 setosa 2 4.90 3.00 1.40 0.20 setosa 3 4.70 3.20 1.30 0.20 setosa 4 4.60 3.10 1.50 0.20 setosa 5 5.00 3.60 1.40 0.20 setosa 6 5.40 3.90 1.70 0.40 setosa

Change the background color of all cells

You can change the background color of all cells by setting the zebra.type=0.

ztable(head(iris),zebra=0,zebra.type=0)

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.10 3.50 1.40 0.20 setosa 2 4.90 3.00 1.40 0.20 setosa 3 4.70 3.20 1.30 0.20 setosa 4 4.60 3.10 1.50 0.20 setosa 5 5.00 3.60 1.40 0.20 setosa 6 5.40 3.90 1.70 0.40 setosa

ztable(head(iris),zebra=0,zebra.type=0,zebra.color=zcolors$name,zebra.colnames=TRUE)

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.10 3.50 1.40 0.20 setosa 2 4.90 3.00 1.40 0.20 setosa 3 4.70 3.20 1.30 0.20 setosa 4 4.60 3.10 1.50 0.20 setosa 5 5.00 3.60 1.40 0.20 setosa 6 5.40 3.90 1.70 0.40 setosa

Diagonal striping

You can make diagonal striping with use of zebra.color greater/lesser than column length by 1.

ztable(head(iris),zebra=0,zebra.type=0,zebra.color=1:7,zebra.colnames=TRUE)

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.10 3.50 1.40 0.20 setosa 2 4.90 3.00 1.40 0.20 setosa 3 4.70 3.20 1.30 0.20 setosa 4 4.60 3.10 1.50 0.20 setosa 5 5.00 3.60 1.40 0.20 setosa 6 5.40 3.90 1.70 0.40 setosa

ztable(head(mtcars[,1:9]),zebra=0,zebra.type=0,zebra.color=1:9,zebra.colnames=TRUE)

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

  mpg cyl disp hp drat wt qsec vs am Mazda RX4 21.00 6.00 160.00 110.00 3.90 2.62 16.46 0.00 1.00 Mazda RX4 Wag 21.00 6.00 160.00 110.00 3.90 2.88 17.02 0.00 1.00 Datsun 710 22.80 4.00 108.00 93.00 3.85 2.32 18.61 1.00 1.00 Hornet 4 Drive 21.40 6.00 258.00 110.00 3.08 3.21 19.44 1.00 0.00 Hornet Sportabout 18.70 8.00 360.00 175.00 3.15 3.44 17.02 0.00 0.00 Valiant 18.10 6.00 225.00 105.00 2.76 3.46 20.22 1.00 0.00

All background colors

This is demonstration of All background colors. All 749 colors are available in package ztable. Please type ?zcolors.

mycolor=rep("white",6)
for(i in 1:149){
    mycolor=c(mycolor,"white",zcolors$name[((i-1)*5+1):((i-1)*5+5)])
}
mycolor=c(mycolor,"white",zcolors$name[c(746:749,1)])
a=c(zcolors$name[1:5])
for(i in 2:149){
    a=rbind(a,zcolors$name[((i-1)*5+1):((i-1)*5+5)])
}
a=rbind(a,zcolors$name[c(746:749,1)])
a=data.frame(a,stringsAsFactors=FALSE,row.names=NULL)
ztable(a,zebra=0,zebra.type=0,zebra.color=mycolor,include.rownames=FALSE,
       include.colnames=FALSE,longtable=TRUE)

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

airforceblue aliceblue alizarin almond amaranth amber ambersaeece americanrose amethyst anti-flashwhite antiquebrass antiquefuchsia antiquewhite ao aoenglish applegreen apricot aqua aquamarine armygreen arsenic arylideyellow ashgrey asparagus atomictangerine auburn aureolin aurometalsaurus awesome azurecolorwheel azurewebazuremist babyblue babyblueeyes babypink ballblue bananamania bananayellow battleshipgrey bazaar beaublue beaver beige bisque bistre bittersweet black blanchedalmond bleudefrance blizzardblue blond blue bluemunsell bluencs bluepigment blueryb bluebell bluegray blue-green blue-violet blush bole bondiblue bostonuniversityred brandeisblue brass brickred brightcerulean brightgreen brightlavender brightmaroon brightpink brightturquoise brightube brilliantlavender brilliantrose brinkpink britishracinggreen bronze browntraditional brownweb bubblegum bubbles buff bulgarianrose burgundy burlywood burntorange burntsienna burntumber byzantine byzantium cadet cadetblue cadetgrey cadmiumgreen cadmiumorange cadmiumred cadmiumyellow calpolypomonagreen cambridgeblue camel camouflagegreen canaryyellow candyapplered candypink capri caputmortuum cardinal caribbeangreen carmine carminepink carminered carnationpink carnelian carolinablue carrotorange ceil celadon celestialblue cerise cerisepink cerulean ceruleanblue chamoisee champagne charcoal chartreusetraditional chartreuseweb cherryblossompink chestnut chocolatetraditional chocolateweb chromeyellow cinereous cinnabar cinnamon citrine classicrose cobalt cocoabrown columbiablue coolblack coolgrey copper copperrose coquelicot coral coralpink coralred cordovan corn cornellred cornflowerblue cornsilk cosmiclatte cottoncandy cream crimson crimsonglory cyan cyanprocess daffodil dandelion darkblue darkbrown darkbyzantium darkcandyapplered darkcerulean darkchampagne darkchestnut darkcoral darkcyan darkelectricblue darkgoldenrod darkgray darkgreen darkjunglegreen darkkhaki darklava darklavender darkmagenta darkmidnightblue darkolivegreen darkorange darkorchid darkpastelblue darkpastelgreen darkpastelpurple darkpastelred darkpink darkpowderblue darkraspberry darkred darksalmon darkscarlet darkseagreen darksienna darkslateblue darkslategray darkspringgreen darktan darktangerine darktaupe darkterracotta darkturquoise darkviolet dartmouthgreen debianred deepcarmine deepcarminepink deepcarrotorange deepcerise deepchampagne deepchestnut deepfuchsia deepjunglegreen deeplilac deepmagenta deeppeach deeppink deepsaffron deepskyblue denim desert desertsand dimgray dodgerblue dogwoodrose dollarbill drab dukeblue earthyellow ecru eggplant eggshell egyptianblue electricblue electriccrimson electriccyan electricgreen electricindigo electriclavender electriclime electricpurple electricultramarine electricviolet electricyellow emerald etonblue fallow falured fandango fashionfuchsia fawn feldgrau ferngreen ferrarired fielddrab firebrick fireenginered flame flamingopink flavescent flax floralwhite fluorescentorange fluorescentpink fluorescentyellow folly forestgreentraditional forestgreenweb frenchbeige frenchblue frenchlilac frenchrose fuchsia fuchsiapink fulvous fuzzywuzzy gainsboro gamboge ghostwhite ginger glaucous goldmetallic goldwebgolden goldenbrown goldenpoppy goldenyellow goldenrod grannysmithapple gray grayhtmlcssgray grayx11gray gray-asparagus greencolorwheelx11green greenhtmlcssgreen greenmunsell greenncs greenpigment greenryb green-yellow grullo guppiegreen halayaube hanblue hanpurple hansayellow harlequin harvardcrimson harvestgold heartgold heliotrope hollywoodcerise honeydew hotmagenta hotpink huntergreen iceberg icterine inchworm indiagreen indianred indianyellow indigodye indigoweb internationalkleinblue internationalorange iris isabelline islamicgreen ivory jade jasper jazzberryjam jonquil junebud junglegreen kellygreen khakihtmlcsskhaki khakix11lightkhaki lasallegreen languidlavender lapislazuli laserlemon lava lavenderfloral lavenderweb lavenderblue lavenderblush lavendergray lavenderindigo lavendermagenta lavendermist lavenderpink lavenderpurple lavenderrose lawngreen lemon lemonchiffon lightapricot lightblue lightbrown lightcarminepink lightcoral lightcornflowerblue lightcyan lightfuchsiapink lightgoldenrodyellow lightgray lightgreen lightkhaki lightmauve lightpastelpurple lightpink lightsalmon lightsalmonpink lightseagreen lightskyblue lightslategray lighttaupe lightthulianpink lightyellow lilac limecolorwheel limewebx11green limegreen lincolngreen linen liver lust macaroniandcheese magenta magentadye magentaprocess magicmint magnolia mahogany maize majorelleblue malachite manatee mangotango maroonhtmlcss maroonx11 mauve mauvetaupe mauvelous mayablue meatbrown mediumaquamarine mediumblue mediumcandyapplered mediumcarmine mediumelectricblue mediumjunglegreen mediumlavendermagenta mediumorchid mediumpersianblue mediumpurple mediumred-violet mediumseagreen mediumslateblue mediumspringbud mediumspringgreen mediumtaupe mediumtealblue mediumturquoise mediumviolet-red melon midnightblue midnightgreeneaglegreen mikadoyellow mint mintcream mintgreen mistyrose moccasin modebeige moonstoneblue mordantred19 mossgreen mountainmeadow mountbattenpink mulberry mustard myrtle msugreen nadeshikopink napiergreen naplesyellow navajowhite navyblue neoncarrot neonfuchsia neongreen non-photoblue oceanboatblue ochre officegreen oldgold oldlace oldlavender oldmauve oldrose olive olivine onyx operamauve orangecolorwheel orangeryb orangewebcolor orangepeel orange-red orchid otterbrown outerspace outrageousorange oxfordblue oucrimsonred pakistangreen palatinateblue palatinatepurple paleaqua paleblue palebrown palecarmine palecerulean palechestnut palecopper palecornflowerblue palegold palegoldenrod palegreen palemagenta palepink paleplum palered-violet palerobineggblue palesilver palespringbud paletaupe paleviolet-red pansypurple papayawhip parisgreen pastelblue pastelbrown pastelgray pastelgreen pastelmagenta pastelorange pastelpink pastelpurple pastelred pastelviolet pastelyellow patriarch peach peach-orange peachpuff peach-yellow pear pearl peridot periwinkle persianblue persiangreen persianindigo persianorange peru persianpink persianplum persianred persianrose persimmon phlox phthaloblue phthalogreen piggypink pinegreen pink pink-orange pinkpearl pinksherbet pistachio platinum plumtraditional plumweb portlandorange powderblueweb princetonorange prune prussianblue psychedelicpurple puce pumpkin purplehtmlcss purplemunsell purplex11 purpleheart purplemountainmajesty purplepizzazz purpletaupe radicalred raspberry raspberryglace raspberrypink raspberryrose rawumber razzledazzlerose razzmatazz red redmunsell redncs redpigment redryb red-brown red-violet redwood regalia richblack richbrilliantlavender richcarmine richelectricblue richlavender richlilac richmaroon riflegreen robineggblue rose rosebonbon roseebony rosegold rosemadder rosepink rosequartz rosetaupe rosevale rosewood rossocorsa rosybrown royalazure royalbluetraditional royalblueweb royalfuchsia royalpurple ruby ruddy ruddybrown ruddypink rufous russet rust sacramentostategreen saddlebrown safetyorangeblazeorange saffron salmon salmonpink sand sanddune sandstorm sandybrown sandytaupe sangria sapgreen sapphire satinsheengold scarlet schoolbusyellow screamingreen seagreen sealbrown seashell selectiveyellow sepia shadow shamrockgreen shockingpink sienna silver sinopia skobeloff skyblue skymagenta slateblue slategray smaltdarkpowderblue smokeytopaz smokyblack snow spirodiscoball splashedwhite springbud springgreen steelblue stildegrainyellow straw sunglow sunset tan tangelo tangerine tangerineyellow taupe taupegray teagreen tearoseorange tearoserose teal tealblue tealgreen terracotta thistle thulianpink ticklemepink tiffanyblue timberwolf titaniumyellow tomato toolbox tractorred trolleygrey tropicalrainforest trueblue tuftsblue tumbleweed turkishrose turquoise turquoiseblue turquoisegreen tuscanred twilightlavender tyrianpurple uablue uared ube uclablue uclagold ufogreen ultramarine ultramarineblue ultrapink umber unitednationsblue unmellowyellow upforestgreen upmaroon upsdellred urobilin usccardinal uscgold utahcrimson vanilla vegasgold venetianred verdigris vermilion veronica violet violetcolorwheel violetryb violetweb viridian vividauburn vividburgundy vividcerise vividtangerine vividviolet warmblack wenge wheat white whitesmoke wildblueyonder wildstrawberry wildwatermelon wisteria xanadu yaleblue yellow yellowmunsell yellowncs yellowprocess yellowryb yellow-green zaffre zinnwalditebrown airforceblue

Place two or more ztables or figures side by side

If you wanted to place two or more ztables or figures side by side, you can use function parallelTables(). Function parallelTables() takes three parameters. The first parameter width is a numeric vector specifies the width to which the tables or figures should be scaled. The second parameter is a list of ztable or names of valid figure. The 3rd parameter 'type' is the type of table to produce. Possible values for type are "latex" or "html". Default value is "latex". See the examples.

z=ztable(head(mtcars[1:3]),tabular=TRUE,zebra.color="peach-orange")
z1=ztable(head(iris[1:3]),tabular=TRUE,zebra=2)

parallelTables(width=c(0.5,0.5),list(z,z1),type="html")
table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }   mpg cyl disp Mazda RX4 21.00 6.00 160.00 Mazda RX4 Wag 21.00 6.00 160.00 Datsun 710 22.80 4.00 108.00 Hornet 4 Drive 21.40 6.00 258.00 Hornet Sportabout 18.70 8.00 360.00 Valiant 18.10 6.00 225.00 table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }   Sepal.Length Sepal.Width Petal.Length 1 5.10 3.50 1.40 2 4.90 3.00 1.40 3 4.70 3.20 1.30 4 4.60 3.10 1.50 5 5.00 3.60 1.40 6 5.40 3.90 1.70
parallelTables(width=c(0.5,0.5),list(z,"vignettes/figures/ztable3.png"),type="html")
table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }   mpg cyl disp Mazda RX4 21.00 6.00 160.00 Mazda RX4 Wag 21.00 6.00 160.00 Datsun 710 22.80 4.00 108.00 Hornet 4 Drive 21.40 6.00 258.00 Hornet Sportabout 18.70 8.00 360.00 Valiant 18.10 6.00 225.00

mytable object from "moonBook" package

'ztable()' can be used for 'mytable' object made by "mytable" function from "moonBook" package.

require(moonBook)
## Loading required package: moonBook
res=mytable(Dx~.,data=acs)
options(ztable.zebra=NULL)
z=ztable(res)
z

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

NSTEMI STEMI Unstable Angina p (N=153) (N=304) (N=400) age 64.3 ± 12.3 62.1 ± 12.1 63.8 ± 11.0 0.073 sex 0.012     Female 50 (32.7%) 84 (27.6%) 153 (38.2%)     Male 103 (67.3%) 220 (72.4%) 247 (61.8%) cardiogenicShock 0.000     No 149 (97.4%) 256 (84.2%) 400 (100.0%)     Yes 4 ( 2.6%) 48 (15.8%) 0 ( 0.0%) entry 0.001     Femoral 58 (37.9%) 133 (43.8%) 121 (30.2%)     Radial 95 (62.1%) 171 (56.2%) 279 (69.8%) EF 55.0 ± 9.3 52.4 ± 9.5 59.2 ± 8.7 0.000 height 163.3 ± 8.2 165.1 ± 8.2 161.7 ± 9.7 0.000 weight 64.3 ± 10.2 65.7 ± 11.6 64.5 ± 11.6 0.361 BMI 24.1 ± 3.2 24.0 ± 3.3 24.6 ± 3.4 0.064 obesity 0.186     No 106 (69.3%) 209 (68.8%) 252 (63.0%)     Yes 47 (30.7%) 95 (31.2%) 148 (37.0%) TC 193.7 ± 53.6 183.2 ± 43.4 183.5 ± 48.3 0.057 LDLC 126.1 ± 44.7 116.7 ± 39.5 112.9 ± 40.4 0.004 HDLC 38.9 ± 11.9 38.5 ± 11.0 37.8 ± 10.9 0.501 TG 130.1 ± 88.5 106.5 ± 72.0 137.4 ± 101.6 0.000 DM 0.209     No 96 (62.7%) 208 (68.4%) 249 (62.2%)     Yes 57 (37.3%) 96 (31.6%) 151 (37.8%) HBP 0.002     No 62 (40.5%) 150 (49.3%) 144 (36.0%)     Yes 91 (59.5%) 154 (50.7%) 256 (64.0%) smoking 0.000     Ex-smoker 42 (27.5%) 66 (21.7%) 96 (24.0%)     Never 50 (32.7%) 97 (31.9%) 185 (46.2%)     Smoker 61 (39.9%) 141 (46.4%) 119 (29.8%)

vlines(z,type="all")

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

NSTEMI STEMI Unstable Angina p (N=153) (N=304) (N=400) age 64.3 ± 12.3 62.1 ± 12.1 63.8 ± 11.0 0.073 sex 0.012     Female 50 (32.7%) 84 (27.6%) 153 (38.2%)     Male 103 (67.3%) 220 (72.4%) 247 (61.8%) cardiogenicShock 0.000     No 149 (97.4%) 256 (84.2%) 400 (100.0%)     Yes 4 ( 2.6%) 48 (15.8%) 0 ( 0.0%) entry 0.001     Femoral 58 (37.9%) 133 (43.8%) 121 (30.2%)     Radial 95 (62.1%) 171 (56.2%) 279 (69.8%) EF 55.0 ± 9.3 52.4 ± 9.5 59.2 ± 8.7 0.000 height 163.3 ± 8.2 165.1 ± 8.2 161.7 ± 9.7 0.000 weight 64.3 ± 10.2 65.7 ± 11.6 64.5 ± 11.6 0.361 BMI 24.1 ± 3.2 24.0 ± 3.3 24.6 ± 3.4 0.064 obesity 0.186     No 106 (69.3%) 209 (68.8%) 252 (63.0%)     Yes 47 (30.7%) 95 (31.2%) 148 (37.0%) TC 193.7 ± 53.6 183.2 ± 43.4 183.5 ± 48.3 0.057 LDLC 126.1 ± 44.7 116.7 ± 39.5 112.9 ± 40.4 0.004 HDLC 38.9 ± 11.9 38.5 ± 11.0 37.8 ± 10.9 0.501 TG 130.1 ± 88.5 106.5 ± 72.0 137.4 ± 101.6 0.000 DM 0.209     No 96 (62.7%) 208 (68.4%) 249 (62.2%)     Yes 57 (37.3%) 96 (31.6%) 151 (37.8%) HBP 0.002     No 62 (40.5%) 150 (49.3%) 144 (36.0%)     Yes 91 (59.5%) 154 (50.7%) 256 (64.0%) smoking 0.000     Ex-smoker 42 (27.5%) 66 (21.7%) 96 (24.0%)     Never 50 (32.7%) 97 (31.9%) 185 (46.2%)     Smoker 61 (39.9%) 141 (46.4%) 119 (29.8%)

cbind.mytable object

'ztable()' can be used for 'cbind.mytable' object made by "mytable" function from "moonBook" package.

res1=mytable(sex+DM~.,data=acs)
z=ztable(res1)
z

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Descriptive Statistics Stratified by 'SEX' and 'DM'   Male   Female   No Yes p   No Yes p   (N=380) (N=190)   (N=173) (N=114) age 60.9 ± 11.5 60.1 ± 10.6 0.472 69.3 ± 11.4 67.8 ± 9.7 0.257 cardiogenicShock 0.685 0.296     No 355 (93.4%) 175 (92.1%) 168 (97.1%) 107 (93.9%)     Yes 25 ( 6.6%) 15 ( 7.9%) 5 ( 2.9%) 7 ( 6.1%) entry 0.552 0.665     Femoral 125 (32.9%) 68 (35.8%) 74 (42.8%) 45 (39.5%)     Radial 255 (67.1%) 122 (64.2%) 99 (57.2%) 69 (60.5%) Dx 0.219 0.240     NSTEMI 71 (18.7%) 32 (16.8%) 25 (14.5%) 25 (21.9%)     STEMI 154 (40.5%) 66 (34.7%) 54 (31.2%) 30 (26.3%)     Unstable Angina 155 (40.8%) 92 (48.4%) 94 (54.3%) 59 (51.8%) EF 56.5 ± 8.3 53.9 ± 11.0 0.007 56.0 ± 10.1 56.6 ± 10.0 0.655 height 168.1 ± 5.8 167.5 ± 6.7 0.386 153.9 ± 6.5 153.6 ± 5.8 0.707 weight 68.1 ± 10.4 69.8 ± 10.2 0.070 56.5 ± 8.7 58.4 ± 10.0 0.106 BMI 24.0 ± 3.1 24.9 ± 3.5 0.005 23.8 ± 3.2 24.8 ± 4.0 0.046 obesity 0.027 0.359     No 261 (68.7%) 112 (58.9%) 121 (69.9%) 73 (64.0%)     Yes 119 (31.3%) 78 (41.1%) 52 (30.1%) 41 (36.0%) TC 184.1 ± 46.7 181.8 ± 44.5 0.572 186.0 ± 43.1 193.3 ± 60.8 0.274 LDLC 117.9 ± 41.8 112.1 ± 39.4 0.115 116.3 ± 35.2 119.8 ± 48.6 0.519 HDLC 38.4 ± 11.4 36.8 ± 9.6 0.083 39.2 ± 10.9 38.8 ± 12.2 0.821 TG 115.2 ± 72.2 153.4 ± 130.7 0.000 114.2 ± 82.4 128.4 ± 65.5 0.112 HBP 0.000 0.356     No 205 (53.9%) 68 (35.8%) 54 (31.2%) 29 (25.4%)     Yes 175 (46.1%) 122 (64.2%) 119 (68.8%) 85 (74.6%) smoking 0.386 0.093     Ex-smoker 101 (26.6%) 54 (28.4%) 34 (19.7%) 15 (13.2%)     Never 77 (20.3%) 46 (24.2%) 118 (68.2%) 91 (79.8%)     Smoker 202 (53.2%) 90 (47.4%) 21 (12.1%) 8 ( 7.0%)

vlines(z,type="all")

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Descriptive Statistics Stratified by 'SEX' and 'DM' Male Female No Yes p No Yes p (N=380) (N=190) (N=173) (N=114) age 60.9 ± 11.5 60.1 ± 10.6 0.472 69.3 ± 11.4 67.8 ± 9.7 0.257 cardiogenicShock 0.685 0.296     No 355 (93.4%) 175 (92.1%) 168 (97.1%) 107 (93.9%)     Yes 25 ( 6.6%) 15 ( 7.9%) 5 ( 2.9%) 7 ( 6.1%) entry 0.552 0.665     Femoral 125 (32.9%) 68 (35.8%) 74 (42.8%) 45 (39.5%)     Radial 255 (67.1%) 122 (64.2%) 99 (57.2%) 69 (60.5%) Dx 0.219 0.240     NSTEMI 71 (18.7%) 32 (16.8%) 25 (14.5%) 25 (21.9%)     STEMI 154 (40.5%) 66 (34.7%) 54 (31.2%) 30 (26.3%)     Unstable Angina 155 (40.8%) 92 (48.4%) 94 (54.3%) 59 (51.8%) EF 56.5 ± 8.3 53.9 ± 11.0 0.007 56.0 ± 10.1 56.6 ± 10.0 0.655 height 168.1 ± 5.8 167.5 ± 6.7 0.386 153.9 ± 6.5 153.6 ± 5.8 0.707 weight 68.1 ± 10.4 69.8 ± 10.2 0.070 56.5 ± 8.7 58.4 ± 10.0 0.106 BMI 24.0 ± 3.1 24.9 ± 3.5 0.005 23.8 ± 3.2 24.8 ± 4.0 0.046 obesity 0.027 0.359     No 261 (68.7%) 112 (58.9%) 121 (69.9%) 73 (64.0%)     Yes 119 (31.3%) 78 (41.1%) 52 (30.1%) 41 (36.0%) TC 184.1 ± 46.7 181.8 ± 44.5 0.572 186.0 ± 43.1 193.3 ± 60.8 0.274 LDLC 117.9 ± 41.8 112.1 ± 39.4 0.115 116.3 ± 35.2 119.8 ± 48.6 0.519 HDLC 38.4 ± 11.4 36.8 ± 9.6 0.083 39.2 ± 10.9 38.8 ± 12.2 0.821 TG 115.2 ± 72.2 153.4 ± 130.7 0.000 114.2 ± 82.4 128.4 ± 65.5 0.112 HBP 0.000 0.356     No 205 (53.9%) 68 (35.8%) 54 (31.2%) 29 (25.4%)     Yes 175 (46.1%) 122 (64.2%) 119 (68.8%) 85 (74.6%) smoking 0.386 0.093     Ex-smoker 101 (26.6%) 54 (28.4%) 34 (19.7%) 15 (13.2%)     Never 77 (20.3%) 46 (24.2%) 118 (68.2%) 91 (79.8%)     Smoker 202 (53.2%) 90 (47.4%) 21 (12.1%) 8 ( 7.0%)

You can use all ztable related function in this table.

z=addRowColor(z,c(13,16),"platinum")
z=addColColor(z,c(5,8),"pink")
z=addCellColor(z,rows=16,cols=c(5,8),color="orange")
z=addCellColor(z,rows=13,cols=5,color="orange")
z

table { font-family: serif; text-align: right;} th { padding: 1px 1px 5px 5px; } td { padding: 1px 1px 5px 5px; }

Descriptive Statistics Stratified by 'SEX' and 'DM'   Male   Female   No Yes p   No Yes p   (N=380) (N=190)   (N=173) (N=114) age 60.9 ± 11.5 60.1 ± 10.6 0.472 69.3 ± 11.4 67.8 ± 9.7 0.257 cardiogenicShock 0.685 0.296     No 355 (93.4%) 175 (92.1%) 168 (97.1%) 107 (93.9%)     Yes 25 ( 6.6%) 15 ( 7.9%) 5 ( 2.9%) 7 ( 6.1%) entry 0.552 0.665     Femoral 125 (32.9%) 68 (35.8%) 74 (42.8%) 45 (39.5%)     Radial 255 (67.1%) 122 (64.2%) 99 (57.2%) 69 (60.5%) Dx 0.219 0.240     NSTEMI 71 (18.7%) 32 (16.8%) 25 (14.5%) 25 (21.9%)     STEMI 154 (40.5%) 66 (34.7%) 54 (31.2%) 30 (26.3%)     Unstable Angina 155 (40.8%) 92 (48.4%) 94 (54.3%) 59 (51.8%) EF 56.5 ± 8.3 53.9 ± 11.0 0.007 56.0 ± 10.1 56.6 ± 10.0 0.655 height 168.1 ± 5.8 167.5 ± 6.7 0.386 153.9 ± 6.5 153.6 ± 5.8 0.707 weight 68.1 ± 10.4 69.8 ± 10.2 0.070 56.5 ± 8.7 58.4 ± 10.0 0.106 BMI 24.0 ± 3.1 24.9 ± 3.5 0.005 23.8 ± 3.2 24.8 ± 4.0 0.046 obesity 0.027 0.359     No 261 (68.7%) 112 (58.9%) 121 (69.9%) 73 (64.0%)     Yes 119 (31.3%) 78 (41.1%) 52 (30.1%) 41 (36.0%) TC 184.1 ± 46.7 181.8 ± 44.5 0.572 186.0 ± 43.1 193.3 ± 60.8 0.274 LDLC 117.9 ± 41.8 112.1 ± 39.4 0.115 116.3 ± 35.2 119.8 ± 48.6 0.519 HDLC 38.4 ± 11.4 36.8 ± 9.6 0.083 39.2 ± 10.9 38.8 ± 12.2 0.821 TG 115.2 ± 72.2 153.4 ± 130.7 0.000 114.2 ± 82.4 128.4 ± 65.5 0.112 HBP 0.000 0.356     No 205 (53.9%) 68 (35.8%) 54 (31.2%) 29 (25.4%)     Yes 175 (46.1%) 122 (64.2%) 119 (68.8%) 85 (74.6%) smoking 0.386 0.093     Ex-smoker 101 (26.6%) 54 (28.4%) 34 (19.7%) 15 (13.2%)     Never 77 (20.3%) 46 (24.2%) 118 (68.2%) 91 (79.8%)     Smoker 202 (53.2%) 90 (47.4%) 21 (12.1%) 8 ( 7.0%)



Try the ztable package in your browser

Any scripts or data that you put into this service are public.

ztable documentation built on May 29, 2017, 9:49 a.m.