Here we are exploring the different themes that can be used with tableHTML

library(tableHTML)

Specifying a theme

Although the package has been designed so that it gives the utmost freedom to the user to style the HTML table as they please, some themes have been included for those who need something quick and nice. The package offers three themes for now: scientific, rshiny-blue, and colorize. To use them, you need to use the add_theme function.

Notice: When working with themes you can still add extra css (using the add_css_* family from below) but you will not be able to overwrite the styling that is there e.g. to change the width of the lines.

scientific

This is the scientifc theme where the table design resembles scientific tables for publishing.

tableHTML(mtcars, widths = c(140, rep(50, 11))) %>%
 add_theme('scientific')
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21 6 160 110 3.9 2.62 16.46 0 1 4 4
Mazda RX4 Wag 21 6 160 110 3.9 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.32 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.44 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.46 20.22 1 0 3 1
Duster 360 14.3 8 360 245 3.21 3.57 15.84 0 0 3 4
Merc 240D 24.4 4 146.7 62 3.69 3.19 20 1 0 4 2
Merc 230 22.8 4 140.8 95 3.92 3.15 22.9 1 0 4 2
Merc 280 19.2 6 167.6 123 3.92 3.44 18.3 1 0 4 4
Merc 280C 17.8 6 167.6 123 3.92 3.44 18.9 1 0 4 4
Merc 450SE 16.4 8 275.8 180 3.07 4.07 17.4 0 0 3 3
Merc 450SL 17.3 8 275.8 180 3.07 3.73 17.6 0 0 3 3
Merc 450SLC 15.2 8 275.8 180 3.07 3.78 18 0 0 3 3
Cadillac Fleetwood 10.4 8 472 205 2.93 5.25 17.98 0 0 3 4
Lincoln Continental 10.4 8 460 215 3 5.424 17.82 0 0 3 4
Chrysler Imperial 14.7 8 440 230 3.23 5.345 17.42 0 0 3 4
Fiat 128 32.4 4 78.7 66 4.08 2.2 19.47 1 1 4 1
Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.9 1 1 4 1
Toyota Corona 21.5 4 120.1 97 3.7 2.465 20.01 1 0 3 1
Dodge Challenger 15.5 8 318 150 2.76 3.52 16.87 0 0 3 2
AMC Javelin 15.2 8 304 150 3.15 3.435 17.3 0 0 3 2
Camaro Z28 13.3 8 350 245 3.73 3.84 15.41 0 0 3 4
Pontiac Firebird 19.2 8 400 175 3.08 3.845 17.05 0 0 3 2
Fiat X1-9 27.3 4 79 66 4.08 1.935 18.9 1 1 4 1
Porsche 914-2 26 4 120.3 91 4.43 2.14 16.7 0 1 5 2
Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.9 1 1 5 2
Ford Pantera L 15.8 8 351 264 4.22 3.17 14.5 0 1 5 4
Ferrari Dino 19.7 6 145 175 3.62 2.77 15.5 0 1 5 6
Maserati Bora 15 8 301 335 3.54 3.57 14.6 0 1 5 8
Volvo 142E 21.4 4 121 109 4.11 2.78 18.6 1 1 4 2


tableHTML(mtcars,
          rownames = FALSE,
          widths = c(140, rep(50, 11)),
          row_groups = list(c(10, 10, 12), c('Group 1', 'Group 2', 'Group 3')),
          second_headers = list(c(3, 4, 5), c('col1', 'col2', 'col3'))) %>%
  add_theme('scientific')
col1 col2 col3
mpg cyl disp hp drat wt qsec vs am gear carb
Group 1 21 6 160 110 3.9 2.62 16.46 0 1 4 4
21 6 160 110 3.9 2.875 17.02 0 1 4 4
22.8 4 108 93 3.85 2.32 18.61 1 1 4 1
21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
18.7 8 360 175 3.15 3.44 17.02 0 0 3 2
18.1 6 225 105 2.76 3.46 20.22 1 0 3 1
14.3 8 360 245 3.21 3.57 15.84 0 0 3 4
24.4 4 146.7 62 3.69 3.19 20 1 0 4 2
22.8 4 140.8 95 3.92 3.15 22.9 1 0 4 2
19.2 6 167.6 123 3.92 3.44 18.3 1 0 4 4
Group 2 17.8 6 167.6 123 3.92 3.44 18.9 1 0 4 4
16.4 8 275.8 180 3.07 4.07 17.4 0 0 3 3
17.3 8 275.8 180 3.07 3.73 17.6 0 0 3 3
15.2 8 275.8 180 3.07 3.78 18 0 0 3 3
10.4 8 472 205 2.93 5.25 17.98 0 0 3 4
10.4 8 460 215 3 5.424 17.82 0 0 3 4
14.7 8 440 230 3.23 5.345 17.42 0 0 3 4
32.4 4 78.7 66 4.08 2.2 19.47 1 1 4 1
30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
33.9 4 71.1 65 4.22 1.835 19.9 1 1 4 1
Group 3 21.5 4 120.1 97 3.7 2.465 20.01 1 0 3 1
15.5 8 318 150 2.76 3.52 16.87 0 0 3 2
15.2 8 304 150 3.15 3.435 17.3 0 0 3 2
13.3 8 350 245 3.73 3.84 15.41 0 0 3 4
19.2 8 400 175 3.08 3.845 17.05 0 0 3 2
27.3 4 79 66 4.08 1.935 18.9 1 1 4 1
26 4 120.3 91 4.43 2.14 16.7 0 1 5 2
30.4 4 95.1 113 3.77 1.513 16.9 1 1 5 2
15.8 8 351 264 4.22 3.17 14.5 0 1 5 4
19.7 6 145 175 3.62 2.77 15.5 0 1 5 6
15 8 301 335 3.54 3.57 14.6 0 1 5 8
21.4 4 121 109 4.11 2.78 18.6 1 1 4 2

rshiny-blue

This theme matches the color of the standard shiny apps.

tableHTML(mtcars, widths = c(140, rep(50, 11))) %>%
 add_theme('rshiny-blue')
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21 6 160 110 3.9 2.62 16.46 0 1 4 4
Mazda RX4 Wag 21 6 160 110 3.9 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.32 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.44 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.46 20.22 1 0 3 1
Duster 360 14.3 8 360 245 3.21 3.57 15.84 0 0 3 4
Merc 240D 24.4 4 146.7 62 3.69 3.19 20 1 0 4 2
Merc 230 22.8 4 140.8 95 3.92 3.15 22.9 1 0 4 2
Merc 280 19.2 6 167.6 123 3.92 3.44 18.3 1 0 4 4
Merc 280C 17.8 6 167.6 123 3.92 3.44 18.9 1 0 4 4
Merc 450SE 16.4 8 275.8 180 3.07 4.07 17.4 0 0 3 3
Merc 450SL 17.3 8 275.8 180 3.07 3.73 17.6 0 0 3 3
Merc 450SLC 15.2 8 275.8 180 3.07 3.78 18 0 0 3 3
Cadillac Fleetwood 10.4 8 472 205 2.93 5.25 17.98 0 0 3 4
Lincoln Continental 10.4 8 460 215 3 5.424 17.82 0 0 3 4
Chrysler Imperial 14.7 8 440 230 3.23 5.345 17.42 0 0 3 4
Fiat 128 32.4 4 78.7 66 4.08 2.2 19.47 1 1 4 1
Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.9 1 1 4 1
Toyota Corona 21.5 4 120.1 97 3.7 2.465 20.01 1 0 3 1
Dodge Challenger 15.5 8 318 150 2.76 3.52 16.87 0 0 3 2
AMC Javelin 15.2 8 304 150 3.15 3.435 17.3 0 0 3 2
Camaro Z28 13.3 8 350 245 3.73 3.84 15.41 0 0 3 4
Pontiac Firebird 19.2 8 400 175 3.08 3.845 17.05 0 0 3 2
Fiat X1-9 27.3 4 79 66 4.08 1.935 18.9 1 1 4 1
Porsche 914-2 26 4 120.3 91 4.43 2.14 16.7 0 1 5 2
Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.9 1 1 5 2
Ford Pantera L 15.8 8 351 264 4.22 3.17 14.5 0 1 5 4
Ferrari Dino 19.7 6 145 175 3.62 2.77 15.5 0 1 5 6
Maserati Bora 15 8 301 335 3.54 3.57 14.6 0 1 5 8
Volvo 142E 21.4 4 121 109 4.11 2.78 18.6 1 1 4 2


tableHTML(mtcars,
          rownames = FALSE,
          widths = c(140, rep(50, 11)),
          row_groups = list(c(10, 10, 12), c('Group 1', 'Group 2', 'Group 3')),
          second_headers = list(c(3, 4, 5), c('col1', 'col2', 'col3'))) %>%
  add_theme('rshiny-blue')
col1 col2 col3
mpg cyl disp hp drat wt qsec vs am gear carb
Group 1 21 6 160 110 3.9 2.62 16.46 0 1 4 4
21 6 160 110 3.9 2.875 17.02 0 1 4 4
22.8 4 108 93 3.85 2.32 18.61 1 1 4 1
21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
18.7 8 360 175 3.15 3.44 17.02 0 0 3 2
18.1 6 225 105 2.76 3.46 20.22 1 0 3 1
14.3 8 360 245 3.21 3.57 15.84 0 0 3 4
24.4 4 146.7 62 3.69 3.19 20 1 0 4 2
22.8 4 140.8 95 3.92 3.15 22.9 1 0 4 2
19.2 6 167.6 123 3.92 3.44 18.3 1 0 4 4
Group 2 17.8 6 167.6 123 3.92 3.44 18.9 1 0 4 4
16.4 8 275.8 180 3.07 4.07 17.4 0 0 3 3
17.3 8 275.8 180 3.07 3.73 17.6 0 0 3 3
15.2 8 275.8 180 3.07 3.78 18 0 0 3 3
10.4 8 472 205 2.93 5.25 17.98 0 0 3 4
10.4 8 460 215 3 5.424 17.82 0 0 3 4
14.7 8 440 230 3.23 5.345 17.42 0 0 3 4
32.4 4 78.7 66 4.08 2.2 19.47 1 1 4 1
30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
33.9 4 71.1 65 4.22 1.835 19.9 1 1 4 1
Group 3 21.5 4 120.1 97 3.7 2.465 20.01 1 0 3 1
15.5 8 318 150 2.76 3.52 16.87 0 0 3 2
15.2 8 304 150 3.15 3.435 17.3 0 0 3 2
13.3 8 350 245 3.73 3.84 15.41 0 0 3 4
19.2 8 400 175 3.08 3.845 17.05 0 0 3 2
27.3 4 79 66 4.08 1.935 18.9 1 1 4 1
26 4 120.3 91 4.43 2.14 16.7 0 1 5 2
30.4 4 95.1 113 3.77 1.513 16.9 1 1 5 2
15.8 8 351 264 4.22 3.17 14.5 0 1 5 4
19.7 6 145 175 3.62 2.77 15.5 0 1 5 6
15 8 301 335 3.54 3.57 14.6 0 1 5 8
21.4 4 121 109 4.11 2.78 18.6 1 1 4 2

colorize

This theme is used to create MS Excel-like tables (with any color you like). You can also use it to highlight specific rows (usually corresponding to some aggregation function, for example totals or averages). The arguments that can be used with the colorize theme are color, total_rows, and id_column. The default color is steelblue and by default no rows are chosen to be highlighted. You can also highlight the first column with the id_column argument. The documentation can be found at ?add_theme_colorize.

df <- mtcars[, 1:6]
df %>%
  tableHTML(widths = c(150, rep(70, ncol(df))), rownames = TRUE) %>%
  add_theme('colorize')
mpg cyl disp hp drat wt
Mazda RX4 21 6 160 110 3.9 2.62
Mazda RX4 Wag 21 6 160 110 3.9 2.875
Datsun 710 22.8 4 108 93 3.85 2.32
Hornet 4 Drive 21.4 6 258 110 3.08 3.215
Hornet Sportabout 18.7 8 360 175 3.15 3.44
Valiant 18.1 6 225 105 2.76 3.46
Duster 360 14.3 8 360 245 3.21 3.57
Merc 240D 24.4 4 146.7 62 3.69 3.19
Merc 230 22.8 4 140.8 95 3.92 3.15
Merc 280 19.2 6 167.6 123 3.92 3.44
Merc 280C 17.8 6 167.6 123 3.92 3.44
Merc 450SE 16.4 8 275.8 180 3.07 4.07
Merc 450SL 17.3 8 275.8 180 3.07 3.73
Merc 450SLC 15.2 8 275.8 180 3.07 3.78
Cadillac Fleetwood 10.4 8 472 205 2.93 5.25
Lincoln Continental 10.4 8 460 215 3 5.424
Chrysler Imperial 14.7 8 440 230 3.23 5.345
Fiat 128 32.4 4 78.7 66 4.08 2.2
Honda Civic 30.4 4 75.7 52 4.93 1.615
Toyota Corolla 33.9 4 71.1 65 4.22 1.835
Toyota Corona 21.5 4 120.1 97 3.7 2.465
Dodge Challenger 15.5 8 318 150 2.76 3.52
AMC Javelin 15.2 8 304 150 3.15 3.435
Camaro Z28 13.3 8 350 245 3.73 3.84
Pontiac Firebird 19.2 8 400 175 3.08 3.845
Fiat X1-9 27.3 4 79 66 4.08 1.935
Porsche 914-2 26 4 120.3 91 4.43 2.14
Lotus Europa 30.4 4 95.1 113 3.77 1.513
Ford Pantera L 15.8 8 351 264 4.22 3.17
Ferrari Dino 19.7 6 145 175 3.62 2.77
Maserati Bora 15 8 301 335 3.54 3.57
Volvo 142E 21.4 4 121 109 4.11 2.78


df <- mtcars[, 1:6]
df %>%
  tableHTML(widths = c(150, rep(70, ncol(df))), rownames = TRUE) %>%
  add_theme('colorize', color = 'darkgreen')
mpg cyl disp hp drat wt
Mazda RX4 21 6 160 110 3.9 2.62
Mazda RX4 Wag 21 6 160 110 3.9 2.875
Datsun 710 22.8 4 108 93 3.85 2.32
Hornet 4 Drive 21.4 6 258 110 3.08 3.215
Hornet Sportabout 18.7 8 360 175 3.15 3.44
Valiant 18.1 6 225 105 2.76 3.46
Duster 360 14.3 8 360 245 3.21 3.57
Merc 240D 24.4 4 146.7 62 3.69 3.19
Merc 230 22.8 4 140.8 95 3.92 3.15
Merc 280 19.2 6 167.6 123 3.92 3.44
Merc 280C 17.8 6 167.6 123 3.92 3.44
Merc 450SE 16.4 8 275.8 180 3.07 4.07
Merc 450SL 17.3 8 275.8 180 3.07 3.73
Merc 450SLC 15.2 8 275.8 180 3.07 3.78
Cadillac Fleetwood 10.4 8 472 205 2.93 5.25
Lincoln Continental 10.4 8 460 215 3 5.424
Chrysler Imperial 14.7 8 440 230 3.23 5.345
Fiat 128 32.4 4 78.7 66 4.08 2.2
Honda Civic 30.4 4 75.7 52 4.93 1.615
Toyota Corolla 33.9 4 71.1 65 4.22 1.835
Toyota Corona 21.5 4 120.1 97 3.7 2.465
Dodge Challenger 15.5 8 318 150 2.76 3.52
AMC Javelin 15.2 8 304 150 3.15 3.435
Camaro Z28 13.3 8 350 245 3.73 3.84
Pontiac Firebird 19.2 8 400 175 3.08 3.845
Fiat X1-9 27.3 4 79 66 4.08 1.935
Porsche 914-2 26 4 120.3 91 4.43 2.14
Lotus Europa 30.4 4 95.1 113 3.77 1.513
Ford Pantera L 15.8 8 351 264 4.22 3.17
Ferrari Dino 19.7 6 145 175 3.62 2.77
Maserati Bora 15 8 301 335 3.54 3.57
Volvo 142E 21.4 4 121 109 4.11 2.78


df <- mtcars[, 1:6]
df['Mean', ] <- (df %>% apply(2, mean))
df %>%
  tableHTML(widths = c(150, rep(70, ncol(df))), rownames = TRUE) %>%
  add_theme('colorize', color = c('steelblue', 'red'))
mpg cyl disp hp drat wt
Mazda RX4 21 6 160 110 3.9 2.62
Mazda RX4 Wag 21 6 160 110 3.9 2.875
Datsun 710 22.8 4 108 93 3.85 2.32
Hornet 4 Drive 21.4 6 258 110 3.08 3.215
Hornet Sportabout 18.7 8 360 175 3.15 3.44
Valiant 18.1 6 225 105 2.76 3.46
Duster 360 14.3 8 360 245 3.21 3.57
Merc 240D 24.4 4 146.7 62 3.69 3.19
Merc 230 22.8 4 140.8 95 3.92 3.15
Merc 280 19.2 6 167.6 123 3.92 3.44
Merc 280C 17.8 6 167.6 123 3.92 3.44
Merc 450SE 16.4 8 275.8 180 3.07 4.07
Merc 450SL 17.3 8 275.8 180 3.07 3.73
Merc 450SLC 15.2 8 275.8 180 3.07 3.78
Cadillac Fleetwood 10.4 8 472 205 2.93 5.25
Lincoln Continental 10.4 8 460 215 3 5.424
Chrysler Imperial 14.7 8 440 230 3.23 5.345
Fiat 128 32.4 4 78.7 66 4.08 2.2
Honda Civic 30.4 4 75.7 52 4.93 1.615
Toyota Corolla 33.9 4 71.1 65 4.22 1.835
Toyota Corona 21.5 4 120.1 97 3.7 2.465
Dodge Challenger 15.5 8 318 150 2.76 3.52
AMC Javelin 15.2 8 304 150 3.15 3.435
Camaro Z28 13.3 8 350 245 3.73 3.84
Pontiac Firebird 19.2 8 400 175 3.08 3.845
Fiat X1-9 27.3 4 79 66 4.08 1.935
Porsche 914-2 26 4 120.3 91 4.43 2.14
Lotus Europa 30.4 4 95.1 113 3.77 1.513
Ford Pantera L 15.8 8 351 264 4.22 3.17
Ferrari Dino 19.7 6 145 175 3.62 2.77
Maserati Bora 15 8 301 335 3.54 3.57
Volvo 142E 21.4 4 121 109 4.11 2.78
Mean 20.090625 6.1875 230.721875 146.6875 3.5965625 3.21725


Here we are hightlighting the last row which contains the average of the columns.

df <- mtcars[, 1:6]
df['Mean', ] <- (df %>% apply(2, mean))
df %>%
  tableHTML(widths = c(150, rep(70, ncol(df))), rownames = TRUE) %>%
  add_theme('colorize', color = c('steelblue', 'red'), total_rows = nrow(df))
mpg cyl disp hp drat wt
Mazda RX4 21 6 160 110 3.9 2.62
Mazda RX4 Wag 21 6 160 110 3.9 2.875
Datsun 710 22.8 4 108 93 3.85 2.32
Hornet 4 Drive 21.4 6 258 110 3.08 3.215
Hornet Sportabout 18.7 8 360 175 3.15 3.44
Valiant 18.1 6 225 105 2.76 3.46
Duster 360 14.3 8 360 245 3.21 3.57
Merc 240D 24.4 4 146.7 62 3.69 3.19
Merc 230 22.8 4 140.8 95 3.92 3.15
Merc 280 19.2 6 167.6 123 3.92 3.44
Merc 280C 17.8 6 167.6 123 3.92 3.44
Merc 450SE 16.4 8 275.8 180 3.07 4.07
Merc 450SL 17.3 8 275.8 180 3.07 3.73
Merc 450SLC 15.2 8 275.8 180 3.07 3.78
Cadillac Fleetwood 10.4 8 472 205 2.93 5.25
Lincoln Continental 10.4 8 460 215 3 5.424
Chrysler Imperial 14.7 8 440 230 3.23 5.345
Fiat 128 32.4 4 78.7 66 4.08 2.2
Honda Civic 30.4 4 75.7 52 4.93 1.615
Toyota Corolla 33.9 4 71.1 65 4.22 1.835
Toyota Corona 21.5 4 120.1 97 3.7 2.465
Dodge Challenger 15.5 8 318 150 2.76 3.52
AMC Javelin 15.2 8 304 150 3.15 3.435
Camaro Z28 13.3 8 350 245 3.73 3.84
Pontiac Firebird 19.2 8 400 175 3.08 3.845
Fiat X1-9 27.3 4 79 66 4.08 1.935
Porsche 914-2 26 4 120.3 91 4.43 2.14
Lotus Europa 30.4 4 95.1 113 3.77 1.513
Ford Pantera L 15.8 8 351 264 4.22 3.17
Ferrari Dino 19.7 6 145 175 3.62 2.77
Maserati Bora 15 8 301 335 3.54 3.57
Volvo 142E 21.4 4 121 109 4.11 2.78
Mean 20.090625 6.1875 230.721875 146.6875 3.5965625 3.21725

Totals with add_theme_colorize

Instead of using the umbrella function add_theme, you could also explicitly use add_theme_colorize. The two functions are identical in terms of the output. To see the documentation visit ?add_theme_colorize.

# one total row
x1 <- sample(1:100, 12)
x2 <- sample(1:100, 12)
x3 <- sample(1:100, 12)

df <- data.frame(Month = month.abb, x1, x2, x3,
                 stringsAsFactors = FALSE)

df[nrow(df) + 1, ] <- c('Total', sum(x1), sum(x2), sum(x3))

df %>%
  tableHTML(widths = rep(50, 4), rownames = FALSE) %>%
  add_theme_colorize(color = 'darkred', total_rows = nrow(df))
Month x1 x2 x3
Jan 98 98 77
Feb 53 31 66
Mar 73 45 17
Apr 56 18 36
May 20 77 71
Jun 15 70 68
Jul 10 86 97
Aug 83 67 60
Sep 2 28 73
Oct 34 78 62
Nov 49 8 67
Dec 76 87 6
Total 569 693 700


df_q <- rbind(
  df[1:3, ],
  c('Sum1', sum(x1[1:3]), sum(x2[1:3]), sum(x3[1:3])),
  df[4:6, ],
  c('Sum2', sum(x1[4:6]), sum(x2[4:6]), sum(x3[4:6])),
  df[7:9, ],
  c('Sum3', sum(x1[7:9]), sum(x2[7:9]), sum(x3[7:9])),
  df[10:12, ],
  c('Sum4', sum(x1[10:12]), sum(x2[10:12]), sum(x3[10:12])))

# Two colors and an id_column
df_q %>%
  tableHTML(widths = rep(50, 5),
            rownames = FALSE,
            row_groups = list(c(4, 4, 4, 4),
                              c('Q1', 'Q2', 'Q3', 'Q4'))) %>%
  add_theme_colorize(color = c('pink3', 'yellow2'),
                     total_rows = c(4, 8, 12, 16), id_column = TRUE)
Month x1 x2 x3
Q1 Jan 98 98 77
Feb 53 31 66
Mar 73 45 17
Sum1 224 174 160
Q2 Apr 56 18 36
May 20 77 71
Jun 15 70 68
Sum2 91 165 175
Q3 Jul 10 86 97
Aug 83 67 60
Sep 2 28 73
Sum3 95 181 230
Q4 Oct 34 78 62
Nov 49 8 67
Dec 76 87 6
Sum4 159 173 135