2016-06-30 6 views
1

米国で降水量のデータセットをstate、district(州内)、年と月で分けています。記録は1895年に戻ってきます。複数の条件付きサブセットのループをR

各州の各地区の121年平均(1895 - 現在)を月ごとに抽出しようとしています。明らかに分割やサブセット化でこれを行うことができますが、同じ基本的なコードを何度も書き直すことはありません。私がしたいのは、州、地区、および月ごとに設定されたデータを使って、12ヶ月の平均、つまりアラバマ、地区01、ジャーワイオミング、 。ここで

は、データテーブルの第一と最後の行です:

state, district, year, Jan, Feb, Mar, Apr, May, June, July, Aug, Sept, Oct, Nov, Dec 
01, 01 1895 7.37 1.41 7.17 2.72 3.06 4.04 4.58 4.00 3.41 2.28 1.83 5.83 

... 

50, 13, 2016, 4.77, 3.02, 3.28, -9.99, -9.99, -9.99, -9.99, -9.99, -9.99, -9.99, -9.99, -9.99 

この点で任意の提案/ヘルプはいただければ幸いです。ありがとう!

+0

を使用することができます。 – alistaire

+0

'ライブラリ(tidyr);ライブラリー(dplyr); %>集計(平均、値)%>集計(平均、値)%またはベースまたはデータ。同等のもの – alistaire

+0

ループは必要ありません(df%>集計(月、金額、1月:12月)%> 。単純な集合体が使えます: 'meandf < - aggregate(。state + district、sourcedf、FUN = mean)' – Parfait

答えて

1

私たちは、あなたは、いくつかのカンマが欠落しているdata.table

library(data.table) 
melt(setDT(df), id.var = c('state', 'district', 'year'), 
    variable.name= 'month')[, .(avg = mean(value)) ,.(state, district, month)] 
関連する問題