#r
#r
Вопрос:
У меня есть data.frame «n_com», который включает столбцы для «год» (1951-2010), «месяц» (1,2,3,12) и 81 дополнительных столбцов значений для месячных сумм осадков 81 метеостанции.
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» или у него есть другое решение для создания сезонных сумм?
приветствие из Германии
Ответ №1:
Скорее взлом, чем решение, но вы, вероятно, могли бы просто добавить 1 к столбцу «год» для всех строк с month = 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.