2016-10-10 2 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) для каждой станции. Но сезонные суммы должны включать информацию за декабрь-месяц прошлого года, а информация о других месяцах должна поступать с текущего года. (например, сезонная сумма 1956 года, которая включает данные за декабрь 1955 года, а в другие месяцы - с 1956 года)

Наконец, я хочу, чтобы data.frame со следующими столбцами: «год», «станция 1», «станция 2» и т. д.

Кажется, что функция «dm2seasonal» пакета «hydroTSM» является для меня правом создавать сезонные суммы. Моя проблема заключается в том, что «hydroTSM» нуждается в специальном формировании data.frame (данные в длинном формате), но мой data.frame находится в широкоформатном формате. Может ли anayone помочь мне форматировать мои данные для пакета «hydroTSM» или у вас есть другое решение для создания сезонных сумм?

Greetz из Германии

ответ

0

Больше хак, чем решение, но вы могли бы, вероятно, просто добавьте 1 в колонку «год» для всех строк с месяц = ​​12:

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

Чтобы изменить имена столбцов, см. «имена».

Затем, чтобы перейти к длинному формату, вы можете использовать melt в пакете reshape2, используя yeartemp в качестве переменной id.

Hth.

Hth.

Смежные вопросы