Изменение формы данных.кадр из длинного в широкий по временным рядам

У меня есть набор данных из 13 станций с более чем 20 тысячами ежедневных (около 50 лет) наблюдений. Каждая станция помещена в одной колонке вместе с годом, месяцем и датой на левой стороне как ниже!
Столбцы as (год, месяц, данные, название станций (a,b,c, d……м.)

Year	Month	Date	a	b	c	d	e	f	g	h	i	j	k	l	m
1961	1	1	0.2	0	0			0.01	0	0	0	0		0		0.04
1961	1	2	0.05	0	0			0	0	0	9.398	1.27		5.842		0.01
1961	1	3	0	0	0			0	0	0	1.27	0		0.01		
1961	1	4	0	0	0			0	0	0	0	0		0		0
1961	1	5	0	0	0			0	0	0	0	0		0		0
1961	1	6	0	0	0			0	0	0	0	0		0		0
1961	1	7	0	0	0			0	0	0	0	0		0		0
1961	1	8	0	0	0			0	0	0	0	0		0		0

И я должен изменить порядок в этом измерении, сохраняя один месяц в строке и годы в виде столбца, а столбцы — в виде года, месяца, дней месяца(1,2,3,4,5,…,…….30 или 31 согласно месяцу). Это должно быть выполнено для каждой станции явно.

Year	Month	1	2	3	4	5	6	7	8	9	10	11	12	13	14	15	16	17	18
1960	1	0.00	0.00	0.00	0.00	0.00	0.00	0.00	0.00	0.00	0.00	0.00	0.00	0.00	0.00	0.00	0.00	0.00	0.00
1960	1	22	11	0	0	0.3	0	0	0	0	0	0	0	0	0	0	0	0	0

Для этой цели я пыталсяaggregate(), но не мог понять. Заранее спасибо за любую помощь.

1 ответ

  1. Преобразуйте данные из длинных в широкие.
    Я решил это таким образом, сделать подмножество каждого столбца с годом, месяцем и датой, а затем выполнить этот код для каждого.

    library(reshape) 
    reshape(object, idvar =c("Year","Month"), timevar ="Date", direction = "wide")