Package

> if (!require("DT")) install.packages('DT')

Conditional Row Formatting

> library(DT)
> library(tibble)
> 
> mtcars <- rownames_to_column(mtcars, "carNames")

Background Color

Background color to ‘cornflowerblue’ when cyl == 6.

> datatable(mtcars) %>%
+   formatStyle('cyl',
+               target='row',
+               backgroundColor = styleEqual('6','cornflowerblue'))

Multiple conditions:

> datatable(mtcars) %>%
+   formatStyle('cyl',
+               target='row',
+               backgroundColor = styleEqual(c('6','4','8'),
+                                            c('cornflowerblue','cyan','darkgrey')))

Interval conditions:

Color fonts based on conditions on hp to - blue <= 110
110 < yellow <= 175
175 < red <= 325
green > 325

> datatable(mtcars) %>%
+   formatStyle('hp',
+               target='row',
+               color = 'white',
+               backgroundColor = styleInterval(c(110,175,325),
+                                     c('blue','yellow','red','green')))

Font Color

Font color to red when carNames == “Valiant”.

> datatable(mtcars) %>%
+   formatStyle('carNames',
+               target='row',
+               color = styleEqual(c('Valiant'), c('red')))

Multiple conditions:

> datatable(mtcars) %>%
+   formatStyle('carNames',
+               target='row',
+               color = styleEqual(c('Valiant','Duster 360'),
+                                  c('red','blue')))

Interval conditions:

Color fonts based on conditions on hp to - blue <= 110
110 < yellow <= 175
175 < red <= 325
green > 325

> datatable(mtcars) %>%
+   formatStyle('hp',
+               target='row',
+               color = styleInterval(c(110,175,325),
+                                     c('blue','yellow','red','green')))
LS0tDQp0aXRsZTogIkludGVyYWN0aXZlIFRhYmxlcyB3aXRoIERhdGFUYWJsZXMgKERUKSINCmF1dGhvcjogIk1kIEFoc2FudWwgSXNsYW0iDQpvdXRwdXQ6IA0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogdHJ1ZQ0KICAgIHRvY19mbG9hdDogdHJ1ZQ0KICAgIHRvY19kZXB0aDogNA0KICAgIHRoZW1lOiBjZXJ1bGVhbg0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCi0tLQ0KDQotLS0NCmBgYHtyLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KA0KICBjb21tZW50ID0gIiIsIHByb21wdCA9IFRSVUUsIG1lc3NhZ2U9Riwgd2FybmluZyA9IEYNCikNCmBgYA0KDQojIyBQYWNrYWdlDQoNCmBgYHtyfQ0KaWYgKCFyZXF1aXJlKCJEVCIpKSBpbnN0YWxsLnBhY2thZ2VzKCdEVCcpDQpgYGANCg0KIyMgQ29uZGl0aW9uYWwgUm93IEZvcm1hdHRpbmcNCg0KYGBge3J9DQpsaWJyYXJ5KERUKQ0KbGlicmFyeSh0aWJibGUpDQoNCm10Y2FycyA8LSByb3duYW1lc190b19jb2x1bW4obXRjYXJzLCAiY2FyTmFtZXMiKQ0KYGBgDQoNCiMjIyBCYWNrZ3JvdW5kIENvbG9yDQoNCkJhY2tncm91bmQgY29sb3IgdG8gJ2Nvcm5mbG93ZXJibHVlJyB3aGVuIGN5bCA9PSA2Lg0KDQpgYGB7cn0NCmRhdGF0YWJsZShtdGNhcnMpICU+JQ0KICBmb3JtYXRTdHlsZSgnY3lsJywNCiAgICAgICAgICAgICAgdGFyZ2V0PSdyb3cnLA0KICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3IgPSBzdHlsZUVxdWFsKCc2JywnY29ybmZsb3dlcmJsdWUnKSkNCmBgYA0KDQpNdWx0aXBsZSBjb25kaXRpb25zOg0KDQpgYGB7cn0NCmRhdGF0YWJsZShtdGNhcnMpICU+JQ0KICBmb3JtYXRTdHlsZSgnY3lsJywNCiAgICAgICAgICAgICAgdGFyZ2V0PSdyb3cnLA0KICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3IgPSBzdHlsZUVxdWFsKGMoJzYnLCc0JywnOCcpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMoJ2Nvcm5mbG93ZXJibHVlJywnY3lhbicsJ2RhcmtncmV5JykpKQ0KYGBgDQoNCkludGVydmFsIGNvbmRpdGlvbnM6DQoNCkNvbG9yIGZvbnRzIGJhc2VkIG9uIGNvbmRpdGlvbnMgb24gaHAgdG8gLSANCmJsdWUgPD0gMTEwICAgDQoxMTAgPCB5ZWxsb3cgPD0gMTc1ICAgDQoxNzUgPCByZWQgPD0gMzI1ICAgDQpncmVlbiA+IDMyNQ0KDQpgYGB7cn0NCmRhdGF0YWJsZShtdGNhcnMpICU+JQ0KICBmb3JtYXRTdHlsZSgnaHAnLA0KICAgICAgICAgICAgICB0YXJnZXQ9J3JvdycsDQogICAgICAgICAgICAgIGNvbG9yID0gJ3doaXRlJywNCiAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yID0gc3R5bGVJbnRlcnZhbChjKDExMCwxNzUsMzI1KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMoJ2JsdWUnLCd5ZWxsb3cnLCdyZWQnLCdncmVlbicpKSkNCmBgYA0KDQojIyMgRm9udCBDb2xvcg0KDQpGb250IGNvbG9yIHRvIHJlZCB3aGVuIGNhck5hbWVzID09ICJWYWxpYW50Ii4NCg0KYGBge3J9DQpkYXRhdGFibGUobXRjYXJzKSAlPiUNCiAgZm9ybWF0U3R5bGUoJ2Nhck5hbWVzJywNCiAgICAgICAgICAgICAgdGFyZ2V0PSdyb3cnLA0KICAgICAgICAgICAgICBjb2xvciA9IHN0eWxlRXF1YWwoYygnVmFsaWFudCcpLCBjKCdyZWQnKSkpDQpgYGANCg0KTXVsdGlwbGUgY29uZGl0aW9uczoNCmBgYHtyfQ0KZGF0YXRhYmxlKG10Y2FycykgJT4lDQogIGZvcm1hdFN0eWxlKCdjYXJOYW1lcycsDQogICAgICAgICAgICAgIHRhcmdldD0ncm93JywNCiAgICAgICAgICAgICAgY29sb3IgPSBzdHlsZUVxdWFsKGMoJ1ZhbGlhbnQnLCdEdXN0ZXIgMzYwJyksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjKCdyZWQnLCdibHVlJykpKQ0KYGBgDQoNCkludGVydmFsIGNvbmRpdGlvbnM6DQoNCkNvbG9yIGZvbnRzIGJhc2VkIG9uIGNvbmRpdGlvbnMgb24gaHAgdG8gLSANCmJsdWUgPD0gMTEwICAgDQoxMTAgPCB5ZWxsb3cgPD0gMTc1ICAgDQoxNzUgPCByZWQgPD0gMzI1ICAgDQpncmVlbiA+IDMyNQ0KDQpgYGB7cn0NCmRhdGF0YWJsZShtdGNhcnMpICU+JQ0KICBmb3JtYXRTdHlsZSgnaHAnLA0KICAgICAgICAgICAgICB0YXJnZXQ9J3JvdycsDQogICAgICAgICAgICAgIGNvbG9yID0gc3R5bGVJbnRlcnZhbChjKDExMCwxNzUsMzI1KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMoJ2JsdWUnLCd5ZWxsb3cnLCdyZWQnLCdncmVlbicpKSkNCmBgYA0KDQoNCg0KDQoNCg==