Я пытаюсь построить кривую насыщенности видов для съемки с помощью камеры. У меня тысячи наблюдений и большинство манипуляций делаю в dplyr.
У меня есть три полевых участка с записями наблюдений за разными видами животных за несколько недель отлова. В некоторые недели животных нет, в другие недели может быть несколько видов. Я хочу создать отдельную цифру для каждого участка, чтобы сравнить, как быстро появляются новые виды в последовательные недели исследования. Эти наблюдения за новыми видами должны в конечном итоге стать насыщенными, как только будет зафиксировано общее видовое разнообразие в районе. Некоторые полевые участки, вероятно, насыщаются быстрее, чем другие.
Проблема в том, что я не нашел способа подсчитать количество различных видов, чтобы получить промежуточную сумму по времени. Ниже представлен простой фиктивный набор данных.
field_site<-c(rep("A",4),rep("B",4),rep("C",4))
week<-c(1,2,2,3,2,3,4,4,1,2,3,4)
animal<-c("dog","dog","cat","rabbit","dog","dog","dog","rabbit","cat","cat","rabbit","dog")
df<-as.data.frame(cbind(field_site,week,animal),head=TRUE)
Я могу легко подсчитать количество уникальных видов в пределах каждой недельной группы, например
tbl_df(df)%>%
group_by(field_site,week) %>%
summarise(no_of_sp=n_distinct(animal))
Но это невосприимчиво к тому факту, что некоторые виды снова встречаются в последующие недели. Что мне действительно нужно, так это текущий подсчет различных видов, который подсчитывает количество уникальных видов на участке с 1 недели, проходя вниз по строкам, предполагая, что данные сортируются путем увеличения времени с начала опроса.
Совокупное количество видов, встреченных в ходе исследования по неделям в примере для поля Участок А, будет: 1 неделя = 1 вид, 2 неделя = 2 вида, 3 неделя = 3 вида, 4 неделя = еще 3 вида.
Для участка B совокупное количество видов будет: 1 неделя = 0 видов, 2 неделя = 1 вид, 3 неделя = 1 вид, 4 неделя = 1 вид и т. Д.
Любой совет будет очень признателен. заранее ура!