繁体   English   中英

重塑data.frame从长到宽的时间序列

[英]Reshape data.frame from long to wide on time series

我有一个包含13个站点的数据集,每天(超过50年)观测超过2万次。 每个站与年份,月份和日期一起放在左侧,如下所示! 列为(年,月,数据,站点名称(a,b,c,d ... m)。

 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()但无法解决。 在此先感谢您提供的任何帮助。

从长到宽重塑数据。 我以这种方式解决了问题,用年,月和日为每个列创建子集,然后为每个执行该代码。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM