2013-11-18 6 views
0

Я пытаюсь построить кривую накопления видов, используя набор данных промысла. Это можно сделать легко с помощью таких пакетов, как Vegan. Тем не менее, я хотел бы построить кривую, основанную на другом типе усилий (здесь количество крючков), чем обычный тип, например, выборки или отдельные люди. Я не мог найти способ изменить тип усилия. Есть ли пакет, где можно выполнить такую ​​модификацию?R: Кривая накопления видов на основе переменного усилия

Пример набора данных для игрушек. виды выборки и количество крючков

for (i in 1:50){ 
    set.seed(645) 
    aaa <- data.frame(sample(1:100, 100, replace=TRUE)) 
    names(aaa) <- paste("spvegantest.",i,sep="") 
    assign(paste("spvegantest.",i,sep=""),aaa)} 
list_sp <- lapply(ls(pattern="spvegantest."), get) 
dataset <- data.frame(Sample_ID= 1:100, list_sp, Nhooks = sample(500:2500, 100, replace=TRUE)) 
+0

Эта часть 'ls (pattern =" sp. ")' Слишком недифференцирована, чтобы быть очень надежной - она ​​фактически набирает пользовательскую функцию в моей рабочей области, имя которой содержит строку 'sp', а затем скрипт не работает. Попробуйте что-то более вероятно уникальное, например 'spvegantest''. В любом случае, было бы хорошо, если бы вы могли (а) показать нам, какой код вы уже написали для сюжета, и (б) ссылку на изображение, показывающее, на какой выход вы нацеливаетесь. Трудно представить, что вы хотите. – SlowLearner

+0

Ok @SlowLearner Я отредактировал код, чтобы избежать сбоя скрипта. То, что вы в основном получаете с веганским SAC, является либо совокупным количеством видов в зависимости от количества образцов (или сайтов), либо отдельных лиц. Здесь я хотел бы использовать другой тип усилий (количество крючков). – Fred

ответ

0

Если я хорошо понимаю, вы хотите построить видовой насыщенности против Sampling усилия от непредвиденной таблицы особей вида, обнаруженных в различных образцах. Я не знаком с пакетом vegan, но вы можете загружать свои данные следующим образом. Во втором примере вы можете попытаться увеличить количество точек, добавив еще один цикл, который делает несколько выборок на каждом шаге i.
Реальная кривая данных должна выглядеть как функция sqrt, тогда как здесь она плоская, поскольку каждый образец содержит все виды. В рыболовстве промысловое усилие часто измеряется в количестве лодок x дней в море, а лодки, которые, как предполагается, имеют одну и ту же траловую площадь, количество крючков или общую длину леска - другие общие меры.

count.sp <- function(sample.vec, dataset){ 
    sample.presence <- dataset[sample.vec, grep("sp.", names(dataset))] != 0 
    overall.presence <- apply(sample.presence, 2, sum) != 0 
    n.species <- sum(overall.presence) 
    return(n.species) 
} 

# Sampling effort = number of sample 
plot(c(0, nrow(dataset) - 1), c(0, 1.5*length(grep("sp.", names(dataset)))), type="n", 
    xlab="Sampling effort", ylab="Species richness") 
for (i in 1:(nrow(dataset) - 1)){ 
    sample.vec <- sample(seq(along=dataset$Sample_ID), i) 
    points(i, count.sp(sample.vec, dataset), pch=19, cex=0.5) 
} 

# Sampling effort = number of hooks 
plot(c(0, sum(dataset$Nhooks)), c(0, 1.5*length(grep("sp.", names(dataset)))), type="n", 
    xlab="Sampling effort", ylab="Species richness") 
for (i in 1:(nrow(dataset) - 1)){ 
    sample.vec <- sample(seq(along=dataset$Sample_ID), i) 
    points(sum(dataset$Nhooks[sample.vec]), count.sp(sample.vec, dataset), pch=19, cex=0.5) 
} 
+0

Привет, извините за задержку (во время поездки). Мои правильные данные о игрушке были недостаточными. – Fred

1

Версия R-Forge и GitHub из веганских добавила аргумент для весов видового накопления (specaccum() функции). Это из документации:

w: Weights giving the sampling effort. 

Вы можете попробовать эту версию (но тогда вы должны быть в состоянии построить пакет самостоятельно: R-Фордж слишком дисфункциональной, чтобы обеспечить пакет).

Аргумент для весов был добавлен, потому что кто-то попросил об этом. Он еще не был выпущен, потому что человек, спрашивающий об этом, потерял интерес и никогда не тестировал, если это было необходимо. Если вы проверите это и сочтете это полезным, он перейдет к релизу.

+0

ОК, спасибо за подсказку. – Fred

+0

Обновление: specaccum() с весами теперь находится в vegan 2.0-10 в CRAN (выпущен 12 декабря 2013 г.). –