2016-11-29 7 views
1

がdplyrクエリ、次の点を考慮フィルタリングdplyrのGROUP_BYとは

> mpg %>% group_by(class) %>% summarise(n()) 

さて、私は次のように結果をフィルタリングする出力が

# A tibble: 7 x 2 
     class n() 
     <chr> <int> 
1 2seater  5 
2 compact 47 
3 midsize 41 
4 minivan 11 
5  pickup 33 
6 subcompact 35 
7  suv 62 

です:ある

> mpg %>% group_by(class) %>% filter(hwy==21) %>% summarise(n()) 

を、私は高速道路の走行距離21を持つ車のクラスの数を示したいと思います。結果は以下の通りです:

# A tibble: 2 x 2 
     class n() 
     <chr> <int> 
1 minivan  1 
2 subcompact  1 

これは予想される結果ですが、代わりにすべてのクラスが表示されます。クラスにハイウェイの走行距離が21の車がない場合、n()は次のように報告されます。 0どうしたらいいですか?言い換えれば

、私は次の出力を示しdplyrクエリをしたい:nは()21

の高速道路の走行距離数の車のクラスである

# A tibble: 7 x 2 
     class n() 
     <chr> <int> 
1 2seater  0 
2 compact  0 
3 midsize  0 
4 minivan  1 
5  pickup  0 
6 subcompact  1 
7  suv  0 

これは可能ですか?

+0

変換 'class'を試してみてください。 – Henrik

答えて

0

は考慮し、データのリンク作品に答えるために、この

mpg %>% mutate(k=(hwy==21)) %>% group_by(class) %>% 
    summarise(n=sum(k)) 
関連する問題