A couple years ago, Irene Ros made this handy underscore.nest
to create the somewhat tricky nested format to work with many of the the d3.js
network layouts. Now, with htmlwidgets
, these tricky nested structures are increasingly needed but unfortunately are even more difficult to create in R
. V8
from Jeroen Ooms lets us use underscore.nest
directly in R.
networkD3
and Titanic# use https://github.com/iros/underscore.nest in R with V8
library(V8)
# if want hierNetwork use this branch of networkD3 not yet pulled
# devtools::install_github("timelyportfolio/networkD3@feature/d3.chart.layout")
library(networkD3)
ct = new_context()
ct$source(system.file("js/underscore.js", package="V8"))
ct$source("https://raw.githubusercontent.com/iros/underscore.nest/master/underscore.nest.min.js")
ct$eval(sprintf(
"
var data = %s;
JSON.stringify(_.nest(data, %s));
"
, jsonlite::toJSON( data.frame(Titanic) )
, jsonlite::toJSON( names(dimnames(Titanic) ) )
)) %>>%
(hierNetwork( rjson::fromJSON(.), zoomable = T, collapsible = T ) )