[R] Implementing trees in R
    Yuk Lap Yip (Kevin) 
    yuklap.yip at yale.edu
       
    Fri Mar 16 14:36:36 CET 2007
    
    
  
Hi all,
    I am rather new to R. Recently I have been trying to implement some 
tree algorithms in R. I used lists to model tree nodes. I thought 
something like this would work:
    parent <- list();
    child <- list();
    parent$child1 <- child;
    child$parent <- parent;
    When I tried to check whether a node is its parent's first child 
using "if (node$parent$child1 == node)", it always returned false. Then 
I realized that it does not really work because "parent$child1 <- child" 
actually makes a copy of child instead of referencing it. I think one 
possible fix is to keep a list of node objects, and make references 
using the positions in the list. For example, I think the following 
would work:
    parent <- list();
    child <- list();
    nodes <- list(parent, child);
    parent$child1 <- 2;
    child$parent <- 1;
    Then the "first child" test can be rewritten as "if 
(nodes[[nodes[[nodeId]]$parent]]$child1 == nodeId)". However, I would 
prefer not to implement trees in this way, as it requires the 
inconvenient and error-prone manipulations of node IDs.
    May I know if there is a way to make object references to lists? Or 
are there other ways to implement tree data structures in R?
    BTW, I checked how hclust was implemented, and noticed that it calls 
an external Fortran program. I would want a solution not involving any 
external programs.
    Thanks.
-- 
	God bless.
	Kevin
    
    
More information about the R-help
mailing list