2016-11-04 39 views
0

我有一个包含13个站的数据集,每天有超过20万个观测值(约50年)。每个电台都放置在一个单栏中,并且年份,月份和日期位于左侧,如下所示! 列是为(年,月,数据,该站的名称(A,B,C,d ...... M)。 将数据帧从长变宽为时间序列

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

您输入的每个年份,月份,日期组合(标记为'a'到'm')有13个值。您的输出似乎没有翻译这些值,但它每年有18列,月份组合。你能解释一下发生了什么事吗?它似乎不是一个简单的数据重塑,那它是什么? – rosscova

+0

编辑我的问题@rosscova – irfan

+0

您的数据对我来说依然没有多大意义。从你的描述来看,你可能想看''reshape2'包中的'cast'。 – rosscova

回答

0

将数据从长整形到宽整形。 我以这种方式解决它,使每个列的子集与年份,月份和日期,然后执行此代码为每个。

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