2016-03-30 13 views
3

私はDBで構成されています:Species ID(因子として)、カウント、サイト、訪問、年。ここでサブセットを見つける[Google Drive]カウントを持つデータにtapplyを使用してゼロとNAsを追加する

種、敷地、訪問、年の4D配列を作成したいと思います。セル値としてカウントします。そのために私は次のコードを使用しています:

y<-tapply(counts,list(species,site,visit,year), sum) 

一部のサイトは、必ずしも年内には訪れていませんでした。したがって、実際には良いですが、細胞内のNAsを得る。私の問題は、あるサイトがある訪問と年に訪問されたが、その種は見られなかったことである。元のDBには数が表示されています(例外はほとんどありません)。したがって、コードはそれらのセルにNA値を与えますが、0値が必要です。

サイトにアクセスしたときにこれらの0値のセルを追加する方法についてのアドバイスはありますが、その種は表示されませんでした。

事前に感謝します。あなたのデータが与えられ

+2

です。 –

答えて

0

は、リンクが壊れたり経時的に変化することができるよう、問題のデータを含めてくださいdata.frame DF

library(reshape2) 

tmp <- dcast(df, site + visit + year ~ species, value.var = 'counts', fill = 0) 
df <- melt(tmp, id.vars = c('site', 'visit', 'year'), variable.name = 'species', value.name = 'counts') 
y <- tapply(df$counts, list(df$species, df$site, df$visit, df$year), sum) 
+0

ダナさんありがとう!できます。私は関数の和をdcastに加えて、値がゼロでないときの観測値の合計を得ました。 tmp < - dcast(df、site + visit + year〜種、合計、value.var = "counts"、fill = 0) – YMC

+0

ようこそ。回答を受け入れたものとしてマークしてください。 –

関連する問題