如何使用R

时间:2017-10-07 08:18:22

标签: r tree

如果data <- data.frame(a=c(1,1,2),b=c(2,4,1))。如果每行的数据框代表fp树的一个分支。如何以图解方式enter image description here进行表示。

2 个答案:

答案 0 :(得分:0)

使用data.tree库找到解决方案。花时间寻找解决方案。在解析第一行1,2时,创建一个分支。解析第二行时,在创建分支时,它用于覆盖前一个分支并仅保留分支1,4。通过检查节点是否已经具有给定名称的子节点来克服此问题,如果没有创建新的其他引用现有节点。下面是代码。 `

rootNode <- Node$new("Root")

for(i in 1:nrow(data)){
  tmp<-rootNode
  for(j in 1:ncol(data)){

    if(is.null(Navigate(tmp, c(as.character(data[i,j]))))){
      node <- tmp$AddChild(data[i,j])
      tmp <- node
    }
    else{
      tmp <- Navigate(tmp, c(as.character(data[i,j])))
    }
  }

}

plot(rootNode)

`

对其他测试用例进行了测试,并且工作正常。

data <- data.frame(a=c(1,1,2,2),b=c(1,2,4,3),c=c(2,2,2,2),d=c(2,3,3,4))

答案 1 :(得分:0)

执行此操作的标准方法是:

data <- data.frame(a=c(1,1,2,2),b=c(1,2,4,3),c=c(2,2,2,2),d=c(2,3,3,4))
data$pathString <- paste("0", data$a, data$b, data$c, data$d, sep = "/")
tree <- as.Node(data)

请务必阅读文档,例如: https://cran.r-project.org/package=data.tree/vignettes/data.tree.html#create-a-tree-from-a-data.frame