В рамках разработки демонстрации для пакета, над которым я работаю, мне нужно дать количественную оценку классической экологической пищевой сети, как описано ниже.Я проверил vegan, bipartite и sna, но не вижу ничего, что делает то, что мне нужно, хотя я могу ошибаться - это большие пакеты.Таким образом, мне интересно, есть ли эта идея уже в пакете, или у кого-то есть умный способ вычислить результаты.Похоже, это должен быть пакет.
Пищевая сеть может быть описана матрицей взаимодействий между видами A: F, как показано в коде и диаграмме.На словах можно сказать, что «A ест B, который ест E» и т. Д. (Очень трудно увидеть в матрице, тривиально на диаграмме).
species <- LETTERS[1:6]
links <- c(0, 1, 0, 0, 0, 0,
1, 0, 1, 1, 1, 0,
0, 1, 0, 0, 1, 0,
0, 1, 0, 0, 1, 1,
0, 1, 1, 1, 0, 0,
0, 0, 0, 1, 0, 0)
L <- matrix(links, nrow = 6, byrow = TRUE,
dimnames = list(species, species))
Я хочу вычислить трофическую позицию и трофическуювысота каждого вида.Трофическая позиция определяется как общее количество видов в пищевой цепи ниже определенного вида + 1. На диаграмме трофическая позиция A равна 6, а для D - 3. С другой стороны, трофическая высота является среднимположения вида в каждой отдельной цепи, в которой он участвует.Вид B связан с 4 различными цепями (путями);его высота - это среднее значение позиций, рассматриваемых по одной за раз: (3 + 3 + 3 + 2) / 4 = 2,75.
В вычислительном отношении необходимо прочитать матрицу L, а затем проработать различные путиМатрица подразумевает вычисление необходимых значений.
Если это не слишком глупо, кто-нибудь знает пакет, который сделает это, или видит способ следовать путям и вычислять различные длины / опции?Такое ощущение, что должен быть какой-то рекурсивный / применимый подход, который должен работать, но я не хочу изобретать вещи заново.
Заранее спасибо