README.md

htable

The goal of htable is to easily and transparently translate R data.frames into styled HTML tables.

Installation

Make sure to build with vignettes to view examples of styling the tables.

# install.packages("devtools")
devtools::install_github("fazetu/htable", build_vignettes = TRUE)

Examples

library(htable)
ex <- data.frame(
  A = 1:10,
  B = 10:1,
  C = -4:5,
  D = letters[1:10],
  E = c(1, NA, 2, NA, 3, NA, 4, NA, 5, NA),
  Pct = runif(10),
  Big = 100000:100009,
  Money = c(100, 200, -100, -200, 1000.11, 2000.22, -1000.11, -2000.22, 0, 0.11),
  stringsAsFactors = FALSE
)

First create the HTable object in one of two ways:

# ht <- HTable$new(ex)
ht <- htable(ex)

To get the HTML for this table:

ht$render()
#> [1] "<table style='margin-left:auto;margin-right:auto;'><thead><tr><th><div>A</div></th><th><div>B</div></th><th><div>C</div></th><th><div>D</div></th><th><div>E</div></th><th><div>Pct</div></th><th><div>Big</div></th><th><div>Money</div></th></tr></thead><tbody><tr><td><div>1</div></td><td><div>10</div></td><td><div>-4</div></td><td><div>a</div></td><td><div>1</div></td><td><div>0.98766976268962</div></td><td><div>100000</div></td><td><div>100</div></td></tr><tr><td><div>2</div></td><td><div>9</div></td><td><div>-3</div></td><td><div>b</div></td><td><div>NA</div></td><td><div>0.83207360515371</div></td><td><div>100001</div></td><td><div>200</div></td></tr><tr><td><div>3</div></td><td><div>8</div></td><td><div>-2</div></td><td><div>c</div></td><td><div>2</div></td><td><div>0.313282870454714</div></td><td><div>100002</div></td><td><div>-100</div></td></tr><tr><td><div>4</div></td><td><div>7</div></td><td><div>-1</div></td><td><div>d</div></td><td><div>NA</div></td><td><div>0.487539564725012</div></td><td><div>100003</div></td><td><div>-200</div></td></tr><tr><td><div>5</div></td><td><div>6</div></td><td><div>0</div></td><td><div>e</div></td><td><div>3</div></td><td><div>0.233070042915642</div></td><td><div>100004</div></td><td><div>1000.11</div></td></tr><tr><td><div>6</div></td><td><div>5</div></td><td><div>1</div></td><td><div>f</div></td><td><div>NA</div></td><td><div>0.515593397431076</div></td><td><div>100005</div></td><td><div>2000.22</div></td></tr><tr><td><div>7</div></td><td><div>4</div></td><td><div>2</div></td><td><div>g</div></td><td><div>4</div></td><td><div>0.0739094286691397</div></td><td><div>100006</div></td><td><div>-1000.11</div></td></tr><tr><td><div>8</div></td><td><div>3</div></td><td><div>3</div></td><td><div>h</div></td><td><div>NA</div></td><td><div>0.552099404623732</div></td><td><div>100007</div></td><td><div>-2000.22</div></td></tr><tr><td><div>9</div></td><td><div>2</div></td><td><div>4</div></td><td><div>i</div></td><td><div>5</div></td><td><div>0.715031072264537</div></td><td><div>100008</div></td><td><div>0</div></td></tr><tr><td><div>10</div></td><td><div>1</div></td><td><div>5</div></td><td><div>j</div></td><td><div>NA</div></td><td><div>0.521291874814779</div></td><td><div>100009</div></td><td><div>0.11</div></td></tr></tbody></table>"

To write the HTML to a file:

ht$writeLines("table.html")

In an RMarkdown document, include in your chunk settings results="asis" in order to get the actual HTML table to render. This chunk has results="asis".

ht$Rmd()
A
B
C
D
E
Pct
Big
Money
1
10
\-4
a
1
0.98766976268962
100000
100
2
9
\-3
b
NA
0.83207360515371
100001
200
3
8
\-2
c
2
0.313282870454714
100002
\-100
4
7
\-1
d
NA
0.487539564725012
100003
\-200
5
6
0
e
3
0.233070042915642
100004
1000.11
6
5
1
f
NA
0.515593397431076
100005
2000.22
7
4
2
g
4
0.0739094286691397
100006
\-1000.11
8
3
3
h
NA
0.552099404623732
100007
\-2000.22
9
2
4
i
5
0.715031072264537
100008
0
10
1
5
j
NA
0.521291874814779
100009
0.11

When not working in an RMarkdown file, use the View() method to see the rendered HTML table.

ht$View()

For examples on how to style the tables, see the vignette.

vignette("htable", package = "htable")


fazetu/htable documentation built on Feb. 12, 2020, 10:13 a.m.