我正在尝试构建一个Combinatorial Tree模型,其中初始叶子是前6位数。第二级是父母的6位数的5位数的所有可能组合。然后第3级是它的父母数字的4位数的所有可能组合。这种模式一直持续到第6级,它只由一位数组成。
所以我的问题是有一种以这种方式生成树的方法吗?我一直在寻找R中基本树木的例子,空手而归。任何建议将不胜感激。谢谢
答案 0 :(得分:1)
你可以用这个来得到类似的东西:
f <- function(x)
{
if(length(x)==1) return(c(value=x))
c(list(value=x), child=lapply(seq(x), function(i)f(x[-i])))
}
示例:
> f(1:3)
$value
[1] 1 2 3
$child1
$child1$value
[1] 2 3
$child1$child1
value
3
$child1$child2
value
2
$child2
$child2$value
[1] 1 3
$child2$child1
value
3
$child2$child2
value
1
$child3
$child3$value
[1] 1 2
$child3$child1
value
2
$child3$child2
value
1