I'm working on a project that requires to run a ctree
and then plot it in interactive mode - like the 'D3.js' tree layout, my main obstacle is to convert the ctree
output into a json
format, to later use by javascript.
Following is what i need (with example from the iris data):
> library(party)
> irisct <- ctree(Species ~ .,data = iris)
> irisct
Conditional inference tree with 4 terminal nodes
Response: Species
Inputs: Sepal.Length, Sepal.Width, Petal.Length, Petal.Width
Number of observations: 150
1) Petal.Length <= 1.9; criterion = 1, statistic = 140.264
2)* weights = 50
1) Petal.Length > 1.9
3) Petal.Width <= 1.7; criterion = 1, statistic = 67.894
4) Petal.Length <= 4.8; criterion = 0.999, statistic = 13.865
5)* weights = 46
4) Petal.Length > 4.8
6)* weights = 8
3) Petal.Width > 1.7
7)* weights = 46
Now i want to convert the ctee
output into the following JSON format using some algorithm (i did it manually), though, this is probably not the best way to convert it:
{"name" : "Petal.Length <= 1.9 criterion = 1","value": 60, "children" : [
{"name" : "n=50" ,"value": 60},
{"name" : "Petal.Length > 1.9 criterion = 1","value": 60, "children": [
{"name" : "n=46","value": 60 },
{"name" : "Petal.Length > 4.8","value": 60, "children" :[
{"name" : "Petal.Width > 1.7" ,"value": 60},
{"name" : "46" ,"value": 60}
]}] }
]}
Here are two pictures of both R and D3.js
plots:
i already tried using RJSONIO
on the ctree object, that didn't help much.
Has anyone ever converted a ctree object/output into JSON for the use of D3.js tree layout? if not, does anyone have any idea of an algorithm that can convert one output to the other?
Thanks in advance for any help!