Skip to content

fazetu/htable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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")

Releases

No releases published

Packages

No packages published

Languages