2017-11-03 21 views
0

私は、複数の調査の平均種累積曲線(調査の1分あたりの魚種数)を生成することに興味があります。平均種累積曲線?

私は、より多くのサイトがサンプリングされるにつれて種の蓄積を見るためにspecaccum()(ビーガン)が一般にどのように使用されるのか理解しています。

この特定のサンプルデザインは、調査ツール(ビデオカメラが魚を測量する)を使用して、種がどのように蓄積するかを調査しています。アイデアは、カメラが水に浸かる時間が長くなればなるほど、より多くの魚種が泳ぐように観察されなければならないということです。私はこのプロセスを何度も繰り返し、BCIデータセットに似たいくつかのテーブルを作成しました。種の蓄積の結果を平均化する方法がある今、私は、複数の臨床試験、(15数個分の時間帯)を実行した場合

library(vegan) 

counts = c(0,0,0,0,0, 
     0,0,0,0,0, 
     1,2,3,4,5) 



#Survey over 15 minutes 
fish = data.frame(Time = seq(1,15,1), 
       S.mys = sample(counts,15,replace = T), 
       S.ros = sample(counts,15,replace = T), 
       S.pau = sample(counts,15,replace = T), 
       S.ens = sample(counts,15,replace = T), 
       S.con = sample(counts,15,replace = T), 
       S.sax = sample(counts,15,replace = T), 
       S.sim = sample(counts,15,replace = T)) 

#taken from the help file example: 
sp1 = specaccum(fish) 
sp2 = specaccum(fish, 'random') 
plot(sp1, ci.type = 'poly',col = 'blue',lwd = 2, ci.lty = 0, ci.col = 'lightblue') 
boxplot(sp2,add = T, col = 'peachpuff') 

シングル15分のトライアルは、次のようになりますか?

+1

'rowMeans(cbind(sp1 $ richness、sp2 $ richness))'はあなたが探しているものですか? –

+0

こんにちは@JariOksanen、私はこれはあなたの他の役に立つコメントと一緒に私の質問の両方のコーディングと理論的なコンポーネントに答えていると思う – Kodiakflds

答えて

1

研究ごとの平均を取得する場合は、すべての学習データを1つのdata.frameに入れ、data.tableを使用してこれを集計することができます。

require(data.table) 
fish<-cbind(fish,Study=rep(1,15)) #Add study column 
setDT(fish)       #Add class data.table 
fish[, lapply(.SD, mean), by=Study] #Aggregate data by study and take mean 

    Study Time S.mys S.ros S.pau  S.ens S.con  S.sax 
1:  1 8 1.266667 0.8 1.666667 0.2666667 1.6 0.6666667 
     S.sim 
1: 1.133333 
+0

ありがとう@CCurtis、これは素晴らしいスタートだと思う。私はこれがいくつかの調査に基づいて平均の種の累積曲線を計算するために取らなければならないアプローチか、個々の曲線を計算してから事後的に平均化するべきかどうかを考えています。いずれにせよ、私は適用関数の学習に取り組む必要があります – Kodiakflds

+1

平均した場合、あなたは累積します。つまり、平均値は単一の観測値よりも** **多くの種です。もし種の蓄積が何らかの意味を持つならば、それは簡単な観察で作られなければならず、次に曲線は平均化されなければならない。 –