У меня есть набор данных, в котором есть несколько видов, перечисленных для каждого значения другого столбца (назовите его индексным столбцом) в R. Мне нужно извлечь или сократить филогению (из филоматического) для каждого значения столбца, а затем рассчитатьфилогенетическое расстояние для каждого значения столбца индекса. В моем наборе данных много значений индекса, поэтому нецелесообразно делать это вручную.
Пример входных данных (2 столбца, один для индекса и один для вида):
Index Species
A ; Sp. 1
A ; Sp. 2
A ; Sp. 3
A ; Sp. 4
B ; Sp. 5
B ; Sp. 1
C ; Sp. 6
D ; Sp. 7
D ; Sp. 2
D ; Sp. 8
D ; Sp. 9
ЧтоЯ хочу получить выходные данные (значения составлены; каждый индекс появляется один раз и рассчитывается филогенетическое расстояние всех связанных с ним видов):
Index; phylogentic distance
A ; 7
B ; 3
C ; 1
D ; 5
Я загрузил глобальное дерево (для всех видов в наборе данных) изфиломатический, используя разветвленный пакет. Я мог бы либо создать цикл или функцию, чтобы обрезать филогению для видов в каждой категории индекса и вычислить PD, либо я мог бы создать функцию для извлечения нового дерева из филоматики для каждого значения индекса, а затем для вычисления PD. Я был бы очень признателен, если бы кто-нибудь сделал что-то подобное или есть идеи о том, как реализовать это в R. Очень благодарен заранее!
library(brranching)
phylomatic(data$Species)