On Wed, 31 Oct 2012, aelmore wrote:
I'm hoping that folks out there with expertise in working with the party
package can help me out here. My team is trying to convert party tree
output into a text file format that can be read by our image processing
software. We are running into difficulties because the way the two
different programs identify their nodes is different.
R numbers it's nodes 1, 2, 3, 4, 5, 6 etc. down the "yes" answers in the
tree until a terminal node is reached, at which point it backs up to the
parent of that terminal node, gives its "no" child the next number
available, follows any additional yes children down from there until it
hits a terminal node, and repeats necessary.
And that's essentially also how the visualization works. A suitably sized
grid is set up first and then grid viewports are recursively created and
traversed.
Our image processing system uses a coordinate system that labels each
node according to its location in the tree (e.g. row 4, column 43).
For instance, the first split in the tree is at location (1,1), the two
daughter nodes are (2,1) and (2,2), and their daughters are (3,1),
(3,2), (3,3), (3,4), etc. etc. on down the tree. It assigns these
location coordinates referencing all possible node locations. In other
words, if node (2,1) in the above scenario happened to be a terminal
node, the daughters of node 2,2 would still be labeled (3,3) and (3,4),
even though nodes (3,1) and (3,2) would not actually exist. They are
still, from a labeling/ID perspective, retained, as it were, as phantom
place holders.
Given that the plot function in the party package is able to produce
output that shows these column and row relationships in graphical
format, it seems to me that there ought to be a way to extract this
positional information from the package, but I haven't found a way to do
it yet.
I think we haven't got anything in the package that delivers this out of
the box. (Also note that the tree is often sparser than all binary splits
that could occur.)
The plot.tree info in the manual says it creates "an (invisible) list
with components x and y giving the coordinates of the tree nodes," and
I'm wondering if it's talking about "tree coordinates," as used by our
image processor, or if it's refering to the x and y position on the
printed plot. Either way, I don't know how to access those x/y numbers.
That's not from the "party" package anyways. plot.tree is from the "tree"
package whose code bases are not related.
At any rate, I'm pretty stumped. It seems to me that since the
positional relationships are produced in the plots, there ought to be a
way to get at them, programmatically.
Any suggestions out there?
I would suggest that you take a loot at the "partykit" package. It
contains a reimplementation of ctree() based on acleaner design of the
recursive tree structure. It also offers more functions for user
interaction. It comes with a vignette that is still somewhat rough but
should give you a good idea how things work.
hth,
Z
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.