私は、複数年、地域、四半期、およびタイプにわたるイベントの出現を含むデータセットを持っています。サンプル:私はすべてのデータのための種別ごとのヒット数の量、および四半期を取得したいR:tapply(x、y、sum)は0の代わりにNAを返します。
syno.h <- data$Type
quarter.number<-data$Quarter
syno.wrng<- data$Type
:
REGION Prov Year Quarter Type Hit Miss
xxx yy 2008 4 Snow 1 0
xxx yy 2009 2 Rain 0 1
私が興味の列を調べるために定義された変数を持っています。ヒット数が0または1の場合、tapplyを使った単純なsum()関数が私の最初の試みでした。
tapply(syno.h, list(syno.wrng, quarter.number), sum)
これが返さ:指定した四半期には出現していないタイプのいくつかについては
1 2 3 4
ARCO NA NA NA 0
BLSN 0 NA 15 74
BLZD 4 NA 17 54
FZDZ NA NA 0 1
FZRA 26 0 143 194
RAIN 106 126 137 124
SNOW 43 2 215 381
SNSQ 0 NA 18 53
WATCHSNSQ NA NA NA 0
WATCHWSTM 0 NA NA NA
WCHL NA NA NA 1
WIND 47 38 155 167
WIND-SUETES 27 6 37 56
WIND-WRECK 34 14 44 58
WTSM 0 1 7 18
を、tapplyは時々NAの代わりにゼロを返します。私は何度もデータをチェックしており、それがきれいだと確信しています。 NAでない値も正しい。
I)は(単に和を用いtapplyとNAを返すタイプ/四半期の組み合わせをチェックすると、私は期待値を取得:
sum(syno.h[quarter.number==3&syno.wrng=="BLSN"])
[1] 15
> sum(syno.h[quarter.number==1&syno.wrng=="BLSN"])
[1] 0
> sum(syno.h[quarter.number==2&syno.wrng=="BLSN"])
[1] 0
> sum(syno.h[quarter.number==2&syno.wrng=="ARCO"])
[1] 0
私の問題は、私は合計でtapply使用する方法であるようだ、とデータそのものではありません。
誰かが問題の可能性に関する提案はありますか?事前
を使用することができます。また、「合計」は要因に意味がありません。再現可能な例はすばらしいでしょう。 –
これは私のコードの例ですが、実際のコードではsyno.wrngは問題ありません。私はすべての入力をチェックしており、それらはすべて期待値を持っています。私が作業しているデータを共有できないため、再現可能な例を提示することは難しいです。 –