簡體   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