次のようなデータフレームがあります。
set.seed(50)
df <- data.frame(Month=c(sort(sample(1:12, 10)),
sort(sample(1:12, 10)),
sort(sample(1:12, 10))),
Year=c(rep(2007, 10),
rep(2010, 10),
rep(2011, 10)))
の頭df
:
Month Year
1 1 2007
2 3 2007
3 4 2007
4 5 2007
5 6 2007
6 7 2007
季節に応じて年変数を再コーディングする必要があります。たとえば、月が1月で、年が2013の場合、年は2012/2013に再コーディングする必要があります。1月から6月の場合、年は2012/2013に再コード化され、7月から12月の年は2013/2014に再コード化される必要があります。
df
したがって、以下のように再コーディングする必要があります。いくつかの月が欠落していて、いくつかの年が欠落していることに注意してください。
set.seed(50)
df <- data.frame(Month=c(sort(sample(1:12, 10)),
sort(sample(1:12, 10)),
sort(sample(1:12, 10))),
Year=c(rep(2007, 10),
rep(2010, 10),
rep(2011, 10)),
Year.Seasonal=c(rep('2006/2007', 5),
rep('2007/2008', 5),
rep('2009/2010', 6),
rep('2010/2011', 9),
rep('2011/2012', 5)))
再コーディングの責任者df
:
Month Year Year.Seasonal
1 1 2007 2006/2007
2 3 2007 2006/2007
3 4 2007 2006/2007
4 5 2007 2006/2007
5 6 2007 2006/2007
6 7 2007 2007/2008
これを行うための最良の方法は何ですか?