2016-11-04 2 views
0

У меня есть набор данных из 13 станций с более чем 20 тысячами наблюдений (около 50 лет). Каждая станция помещается в одну колонку вместе с годом, месяцем и датой на левой стороне, как показано ниже! Колонки как (год, месяц, данные, название станций (а, б, в, г ...... м). Измените данные.фам от длинного до широкого по временному ряду

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

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

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

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

+0

Ваш вход имеет 13 значений для каждой комбинации Год, Месяц, Дата (с пометкой 'a' to 'm'). На вашем выходе, похоже, не переведено эти значения, но у него есть 18 столбцов в год, месяц. Не могли бы вы объяснить, что происходит? Кажется, это не простая переформатировка данных, так что это? – rosscova

+0

Отредактировал мой вопрос @rosscova – irfan

+0

Ваши данные все еще не имеют для меня большого смысла. Однако из вашего описания вы можете посмотреть 'cast' в пакете' reshape2'. – rosscova

ответ

0

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

library(reshape) 
reshape(object, idvar =c("Year","Month"), timevar ="Date", direction = "wide") 
Смежные вопросы