【发布时间】:2018-11-04 17:15:46
【问题描述】:
我想在我的 phylo 类树中给一个物种一个新名称(使用 ape 包)。
我试过了:
tree$tip.label["speciesX"] <- "speciesY"
这并没有达到我想要的效果。有什么建议么?
【问题讨论】:
我想在我的 phylo 类树中给一个物种一个新名称(使用 ape 包)。
我试过了:
tree$tip.label["speciesX"] <- "speciesY"
这并没有达到我想要的效果。有什么建议么?
【问题讨论】:
问题是你不能以你想要的方式索引提示标签(你想替换 value 为“speciesX”的提示标签,而不是 name 是“speciesX”;尖端标签向量没有名称)。听起来很傻,您需要像 tree$tip.label[tree$tip.label=="speciesX"] 这样的东西来确定要替换的正确值。
例子:
## create a tree, from ?read.tree
s <- "owls(((Strix_aluco:4.2,Asio_otus:4.2):3.1,Athene_noctua:7.3):6.3,Tyto_alba:13.5);"
cat(s, file = "ex.tre", sep = "\n")
tree.owls <- read.tree("ex.tre")
重命名:
tree.owls$tip.label[tree.owls$tip.label=="Asio_otus"] <- "something_else"
您可以编写一个函数来执行此操作,例如(未测试!)
rename.tips <- function(phy, old_names, new_names) {
mpos <- match(old_names,phy$tip.labels)
phy$tip.labels[mpos] <- new_names
return(phy)
}
【讨论】: