我有纽维克树
((a:1, b:1):1, (c:1, d:1):1):1;
我希望特定的两个样本(a或b或c或d)彼此尽可能接近
(当然不破坏树的血统)
例如,如果我选择b和d
结果将是
((a:1, b:1):1, (d:1, c:1):1):1;
它必须适用于更复杂的样本,例如
((a:1, b:1):1, ((c:1, d:1):1, (e:1, f:1, g:1):1):1):1;
如果我选择b和f,结果一定是
((a:1, b:1):1, ((f:1, g:1, e:1):1, (c:1, d:1):1):1):1;
g、e、c、d 的顺序并不重要
rotateConstr
包中的
ape
函数通过一些工作模仿了预期的行为。理论上,它应该将提示彼此靠近放置,并限制提示标签的部分列表:
tr2 <- rotateConstr(tr, constraint = c("b", "f"))
在实践中,该函数在有序提示标签的完整列表上表现最佳。
tr3 <- rotateConstr(tr, constraint = c("a", "b", "f", "e", "g", "c", "d"))