2016-10-10 26 views
-2

我有一個data.frame「n_com」,其中包括「年」(1951-2010),「月」(1,2,3,12) 81個氣象站每月降水總量的81個更多值列。R:每個站的降水量數據季節(DJFM)總和

Jahr Monat 12_NS_Monat 13 NS Monat 14 NS Monat 15 NS Monat 16 NS Monat 
 
1 1951  1   397  2045  1447  2666   236 
 
2 1951  2   528  1043   464  1397   202 
 
3 1951  3   819   480   953  1634   665 
 
4 1951 12   363   252   881   610   350 
 
5 1952  1   391   530   557  1321   339 
 
6 1952  2   683   684   920  1125   805

現在,我需要每年爲每個站的幾個月十二月,一月,二月和三月(DJFM)爲季節性款項。但季節性資金應包括上一年12月的信息,而其他月份的信息應來自當年。 (例如:1956年的季節性總和,其中包括1955年的十二月數據,而其他月份是1956年)

最後,我想要一個data.frame,包含以下列:「year」,「station 1」 「station 2」等。

看來,包「hydroTSM」的函數「dm2seasonal」是我創建季節性總和的權利。我的問題是,「hydroTSM」需要特別形成data.frame(長格式的數據),但我的data.frame是寬格式的。是否可以幫助我爲「hydroTSM」軟件包格式化我的數據,或者有另一種解決方案來創建季節性總和?來自德國

格爾茨

回答

0

更多一個黑客不是一個解決方案,但你很可能只是加1後,「年」列有一個月的所有行= 12:

n_com$yeartemp = n_com$year n_com$yeartemp[n_com$month == 12] = n_com$year[n_com$month == 12] + 1

要改變列名稱,請參閱「名稱」。

然後,要更改爲長格式,可以在reshape2包中使用melt,使用yeartemp作爲id變量。

Hth。

Hth。