2016-12-19 13 views
-2

dplyrとtidyrを使用して、多変量データを集計して集計しています。次のようなテーブル形式でデータを表示するにはどうすればよいですか?dplyrとtidyrを使用して、Rの多変量データを集計テーブルに変換します。

データセット:

year, division, group, count 
2016, utensils, forks, 10 
2016, utensils, spoons, 5 
2016, utensils, knives, 20 
2015, utensils, spoons, 4 
2015, utensils, knives, 15 
2015, utensils, forks, 11 
2016, tools, hammer, 10 
2016, tools, wrench, 5 
2016, tools, awe, 20 
2015, tools, hammer, 4 
2015, tools, wrench, 15 
2015, tools, awe 11 

私はこのような情報を提示したいと思います:

​​
+1

なぜ私はダウンしているのか分かりません。 – Rhodo

+0

結果を、各要素に固有の除算があるデータフレームのリストにしますか? – Psidom

+0

お願い - 私は、部門別にデータを分離して別々のデータフレームを作成したい場合は、 – Rhodo

答えて

1

あなたはこれをチェックすることができます。基本的には再形成の問題ですが、分割して、まず列をあなたのデータフレームを分割し、各サブセットを変換するために dcast を使用する必要があります。

library(reshape2) 
lapply(split(df, df$division), function(s) dcast(group ~ year + division, data = s, value.var = "count")) 

#$tools 
# group 2015_tools 2016_tools 
#1 awe   11   20 
#2 hammer   4   10 
#3 wrench   15   5 

#$utensils 
# group 2015_utensils 2016_utensils 
#1 forks   11   10 
#2 kinves   15   20 
#3 spoons    4    5 

、または各サブデータフレームのみが含まれているので1つのユニークな部門では、追加情報を追加しないので、列名から列名を削除することができます。

lapply(split(df, df$division), function(s) dcast(group ~ year, data = s, value.var = "count")) 

#$tools 
# group 2015 2016 
#1 awe 11 20 
#2 hammer 4 10 
#3 wrench 15 5 

#$utensils 
# group 2015 2016 
#1 forks 11 10 
#2 kinves 15 20 
#3 spoons 4 5 
+1

人に魚を教えることに感謝します。私はちょうど必要が巻き終わった:dcast(dataset、year + group〜division、value.var = "count") – Rhodo

+0

確かに。あなたの道を見つけてうれしいです。 – Psidom

関連する問題