переименовать фило - PullRequest
0 голосов
/ 04 ноября 2018

Я хочу дать виду новое имя в своем дереве класса phylo (используя пакет ape).

Я пытался:

tree$tip.label["speciesX"] <- "speciesY"

Это не сделало то, что я хотел. Какие-либо предложения?

1 Ответ

0 голосов
/ 04 ноября 2018

Проблема в том, что вы не можете индексировать метки наконечников так, как вам нужно (вы хотите заменить метку подсказок, у которых значение равно «ороде X », а не ту, у которой имя - это "разновидность X"; вектор метки наконечника не имеет имен). Как бы глупо это не звучало, вам нужно что-то вроде 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)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...