2016-04-17 9 views
0

特定の変数の数、標準偏差、平均値をグループ化した後に取得したいと考えています。私は平均と標準を得ることができますが、カウントを得ることは私にエラーを与えています。これは私が持っている次のコードです:dplyrを使用してカウントを取得する

NYC_Trees %>% 
    group_by(Condition) %>% 
    dplyr::summarise(mean = round(mean(Compensatory.Value), 2), 
        sd = round(sd(Compensatory.Value), 2), 
        count(NYC_Trees,Condition, wt = Compensatory.Value)) 

私はエラーが発生します:処理できません。

私は、次のような出力たい:

Condition Native  N  Mean Std 

は私が間違って何をしているのですか?

+0

がcount' 'のドキュメントを見ると、あなたがcount''へsummarise' 'の結果をパイプする必要があるように、それが見えます'要約 'の中でそれを呼び出さない。あなたが 'summarize'でw/inをコールしても、結果を何かに割り当てる必要があります。あなたのコードはそれをしません。 – steveb

+0

'count()'の代わりに 'n()'を使うべきではない –

+0

'N'と' Native'は何を表していますか? 「N」は各グループの観測数を表しますか? – Psidom

答えて

1

count(NYC_Trees,Condition, wt = Compensatory.Value)は、NYC_Trees %>% group_by(Condition) %>% summarise(n = sum(Compensatory.Value)と同じにする必要があります。これは明らかにベクトルを返すため、関数summariseはそれを処理できません。

だから、あなただけのsummarise内の行n = sum(Compensatory.Value)を持つことができます:

NYC_Trees %>% 
    group_by(Condition) %>% 
    dplyr::summarise(mean = round(mean(Compensatory.Value), 2), 
        sd = round(sd(Compensatory.Value), 2), 
        n = sum(Compensatory.Value)) 

は何をしようとすることですか?あなただけの各グループ内の値の数をしたい場合は、代わりにn = n()を使用することができます。

NYC_Trees %>% 
    group_by(Condition) %>% 
    dplyr::summarise(mean = round(mean(Compensatory.Value), 2), 
        sd = round(sd(Compensatory.Value), 2), 
        n = n()) 
+0

うん、それは完璧な意味がある。それをクリアしていただきありがとうございます:) –

+0

なぜ '' 'summaris'の表記で、' group_by'や 'n'の表記ではありませんか?他の共通パッケージの 'summarize'と名前の競合がありますか?ちょっと興味があるんだけど。 – alistaire

+0

@alistaire:私はOPからこれをコピーしたので、おそらくそこに尋ねるべきです。私は通常、 '::'表記法を一貫して使うか、パッケージが名前空間にロードされていると仮定します。私は 'summarizes'との命名の競合は一度もありませんでしたが、明らかに私は限られた数のパッケージしか使用していません。 – shadow

関連する問題