Я хочу установить «edge.length» в объекте phylo, используя переменную в data.frame. «Node.label» «tip.label» в phylo-объекте соответствует именам строк в data.frame. Как можно установить edge.length с помощью переменной в data.frame, обеспечивая при этом правильное сопоставление данных? В приведенном ниже коде он находится на шаге 3. Я хочу, чтобы длина edge.length соответствовала так, чтобы node.label или tip.label совпадали с row.name в data.frame.
## R code:
## load ape
library(ape)
## 1. A phylo object:
library(data.tree)
A1 <- Node$new("A1")
B1 <- A1$AddChild("B1")
C1 <- B1$AddChild("C1")
D1 <- C1$AddChild("D1")
E1 <- C1$AddChild("E1")
F1 <- E1$AddChild("F1")
G1 <- E1$AddChild("G1")
H1 <- G1$AddChild("H1")
A1.phylo <- as.phylo.Node(A1)
## 2. A data.frame:
set.seed(1)
df <- as.data.frame(rnorm(7, 5, 3))
names(df) <- "length"
row.names(df) <- c("B1","C1","D1","E1","F1","G1","H1")
## 3. Ad the data to A1.phylo$edge.length
A1.phylo$edge.length <- df$length ## wrong!!!