0
データフレームに、草食系寄生虫result
の月間データmonth
に、レベル "Hymenoptera"または "Diptera"の寄生虫の順序 'psitorder' result
は、草食動物の草食動物の場合は「p」、草食動物が大人になった場合は「a」、草食動物が捕らわれてデータが存在しません。データをフィルタリングし、除外されたデータに依存する出力を持つサブセットを計算する
df<-data.frame(month= c(rep(1, each=8), rep(2, each=6),
rep(3, each=6)),result= c(rep("p",each=3),rep("a",each=3) ,
rep("",each=2),rep("p",each=3),rep("a",each=2),
rep("",each=1),rep("a",each=3), rep("",each=3)),
psitorder= c(rep("Hymenoptera",each=2),rep("Diptera",each=1),
rep("",each=5),rep("Hymenoptera",each=1),rep("Diptera",each=3),
rep("",each=2),rep("",each=6)))
私はpsitorder
のレベルごとに個別に毎月のサブセットのためのパーセントの寄生psit_freq
を計算する二つの別々のデータフレームを必要としています。
私が試してみました:
Hymenoptera_output<-
df
filter(psitorder!= "Diptera")%>%
group_by(continuous_month)%>%
summarise(psit_freq = sum(result == "psit")/sum(result==
"adult",result == "psit"))
Diptera_output<-
df
filter(psitorder!= "Hymenoptera")%>%
group_by(continuous_month)%>%
summarise(psit_freq = sum(result == "psit")/sum(result==
"adult",result == "psit"))
私は正しい出力を得ることはありません。出力は、psit_freq
を正しく計算するために必要な非梅毒または双翅目のデータを除外しています。
私は次のように表示されるように出力を必要とする:
Hymenoptera_output<- data.frame(month= c(1,2,3), psit_freq= c(2/6,
1/5, 0))
Diptera_output<- data.frame(month= c(1,2,3), psit_freq= c(1/6,
3/5, 0))
Hymenoptera_output
# month psit_freq
#1 1 0.3333333
#2 2 0.2000000
#3 3 0.0000000
Diptera_output
# month psit_freq
#1 1 0.1666667
#2 2 0.6000000
#3 3 0.0000000
これは非常に効率的に動作しますが、よろしくお願いします。 – Danielle
実際に私の元のデータフレームでは、 'psitorder'変数は、その変数を別の列に条件付きの変数にした結果、NAsを持ちます。 DipteraまたはHymenopteraとして分類されていないすべてのデータは、NA指定を与えられた。私は、このコラムのNAsが、私のアウトプットが私が期待するものではない理由かもしれないと思う。あなたの方法を考えれば、私の出力は、ほとんどのエントリのNAを報告しています。どのようにこの問題を解決する上での任意のアイデア? – Danielle
'sum'に' na.rm = T'を使うことができます。例えば、 'sum(psitorder == 'Hymenoptera'、na.rm = T)'は、他の* sumsと同様です。 – Psidom