2017-04-19 15 views
1

dplyr group_by関数を使用して少し問題があります。この行った後 :ここgroup_byで完全な列を完成

datasetALL %>% group_by(YEAR,Region) %>% summarise(count_number = n()) 

は結果である:

YEAR Region count_number 
<int> <int>  <int> 
1 1946  1   2 
2 1946  2   3 
3 1946  3   1 
4 1946  5   1 
5 1947  3   1 
6 1947  4   1 

私が何か希望:私はtidyrパッケージからcomplete()を使用しようとするが、それは成功していない

YEAR Region count_number 
<int> <int>  <int> 
1 1946  1   2 
2 1946  2   3 
3 1946  3   1 
4 1946  5   1 
5 1946  4   0 #order is no important 
6 1947  1   0 
7 1947  2   0 
8 1947  3   1 
9 1947  4   1 
10 1947  5   0 

を...

+0

「完了」を使って試したコードを追加できますか? – aosmith

+0

'complete'をどのように使用しているかを教えてください。おそらく、 'complete'を実行する前に' ungroup 'する必要があります。また、 'complete'の中でどの変数が'入れ子になっているか '依存します。 – eipi10

+0

この前の質問はそれをカバーするようだ... http://stackoverflow.com/questions/22523131/dplyr-summarise-equivalent-of-drop-false-to-keep-groups-with-zero-length-in –

答えて

1

completeからt彼は整頓パッケージがうまくいくはずです。あなたはそれについてのドキュメントhereを見つけることができます。

おそらく、グループ化を削除していない可能性があります。完了すると、各グループ内でYEARRegionの組み合わせをそれぞれ追加しようとします。しかし、これらの組み合わせはすべて既にグループ化されています。したがって、最初にグループ化を削除してから、完了します。

datasetALL %>% 
    group_by(YEAR,Region) %>% 
    summarise(count_number = n()) %>% 
    ungroup() %>% 
    complete(Year, Region, fill = list(count_number = 1)) 
+0

ありがとう、それは完全に仕事です – Ben