是否可以构建一个类似于下图的树?主要是树应该表达机组人员如何分成班级。
df<-data.frame(Titanic)
df_Crew <- df[df$Class=="Crew",]
L <- lapply(1:4, function(i) aggregate(df_Crew$Freq, by=df_Crew[1:i], sum))
L2 <- lapply(L, function(d) data.frame(group=do.call(paste, c(as.list(d[names(d)!="x"]), sep="_")), freq=d$x))
L3<-data.frame()
for(i in 1:3){
d<-cbind(from=rbind(L2[[i]],L2[[i]])$group,L2[[i+1]])
L3<-rbind(L3,d)
}
library(igraph)
g <- graph.data.frame(L3, directed=TRUE)
plot(g,layout=layout.reingold.tilford(g,root=1),edge.arrow.size=0.5)
答案 0 :(得分:4)
您可以使用 rpart 构建它,使用相同的逻辑
rpart-&gt;二元决策树(CART - >分类和回归树),为每个不同的节点创建二进制/非二进制序列并将其传递给rpart()。
与其他人类似,所以读出包以便应用逻辑将其转换为输入格式。