我正在尝试对包含相同分类群的两棵树进行系统发育比较。我想基于隔离站点为连接着色。我以为我已经成功完成了这项工作,但我的工作流程出现了错误,即彩色线条与准确的隔离站点不对应。我想知道您是否有任何见解,请在下面找到我可重复的示例。
@Query("SELECT c "
+ "FROM message c"
+ " WHERE"
+ " CASE (WHEN a != '' THEN a = :a"
+ " WHEN b != '' THEN b = :b"
+ " WHEN c != '' THEN c = :c"
+ " WHEN d != '' THEN d = :d)"
antlr.NoViableAltException: unexpected token: WHEN
antlr.NoViableAltException: unexpected token: a
antlr.NoViableAltException: unexpected token: THEN
目前这是我目前的输出:
答案 0 :(得分:2)
刚刚在提取提示标签时发现了这个帖子并且它有效。 correct order of tip labels in ape
我还需要将sort=F
合并到合并功能中。
因此,完成后工作流程如下:
site <- structure(list(name = structure(c(1L, 3L, 4L, 5L, 6L, 7L, 8L,9L,
10L, 2L), .Label = c("t1", "t10", "t2", "t3", "t4", "t5","t6", "t7", "t8",
"t9"), class = "factor"), site = c(1L, 1L,1L, 2L, 2L, 3L, 1L, 3L, 2L, 2L)),
.Names = c("name", "site"), row.names = c(NA,10L), class = "data.frame")
library(ape)
t1 <- rtree(10)
t2 <- rtree(10)
is_tip<- t1$edge[,2] <= length(t1$tip.label)
ordered_tips <- t1$edge[is_tip,2]
order <-t1$tip.label[ordered_tips]
order <- as.data.frame(order)
list <- merge(order, site, by.x="V1", by.y="name", sort=F)
x <- list$site
A <- cbind(t1$tip.label, t1$tip.label)
cophyloplot(t1, t2, assoc = A, show.tip.label = T, space=50, col = x)
答案 1 :(得分:1)
仅作为后续,在我的工作中,通过merge命令更改了标签的正确顺序。我的树结构非常复杂,两棵树之间可能缺少个人,这是造成此问题的原因。我只是通过在订单data.frame中添加带有位置的向量来进行修复。
order <-as.data.frame(order,seq = seq(1:length(order)))
后一种可以很容易地用树结构相应地重新排列data.frame。
干杯