【发布时间】:2017-08-22 20:51:31
【问题描述】:
我想这不一定是严格的时间序列数据,但我看不出还有什么方法可以解决这个问题......
我有一个数据表,其中行作为唯一的 XY 位置和 ID、X 和 Y 列,然后是几个气候变量的 12 个月列:
- 1-12 个月的平均温度 (Tmean),命名为 Tmean01、Tmean02 ... Tmean12。
- 1-12 个月的最高温度 (Tmax),命名为 Tmax01、Tmaxe02 ... Tmax12。
- 1-12 个月的最低温度 (Tmax),命名为 Tmax01、Tmaxe02 ... Tmax12。
数据如下:
ID lat long Tave01 Tave02 Tave03 Tave04 Tave05 Tave06 Tave07 Tave08 Tave09 Tave10 Tave11 Tave12 Tmax01 Tmax02 Tmax03 Tmax04 Tmax05 Tmax06 Tmax07 Tmax08 Tmax09 Tmax10 Tmax11 Tmax12 Tmin01 Tmin02 Tmin03 Tmin04 Tmin05 Tmin06 Tmin07 Tmin08 Tmin09 Tmin10 Tmin11 Tmin12
F102 51.5 -116.3 -12.8 -9.2 -4.6 -0.9 4.1 5.8 9.5 8.1 3.2 -1.1 -7.4 -12.0 -8.0 -2.8 0.4 5.2 10.5 9.9 15.0 14.3 8.1 2.5 -4.8 -7.6 -17.5 -15.6 -9.5 -6.9 -2.2 1.7 3.9 1.9 -1.7 -4.7 -10.0 -16.4
F103 51.5 -116.2 -13.0 -9.5 -4.9 -1.2 4.0 5.7 9.4 8.0 3.1 -1.1 -7.6 -12.3 -7.9 -2.9 0.2 5.0 10.3 9.8 15.0 14.3 8.1 2.7 -4.6 -7.6 -18.1 -16.1 -10.0 -7.3 -2.4 1.7 3.7 1.7 -1.9 -5.0 -10.6 -17.0
F105 51.5 -116.1 -13.7 -10.8 -6.5 -3.5 1.8 4.2 7.6 6.1 1.5 -2.7 -9.1 -13.5 -8.7 -4.7 -1.8 2.2 7.6 7.1 12.2 11.5 5.7 1.1 -6.9 -9.1 -18.8 -17.0 -11.2 -9.2 -3.9 1.2 2.9 0.7 -2.7 -6.5 -11.3 -18.0
F106 51.5 -116.0 -13.7 -10.8 -6.4 -3.3 1.8 4.2 7.7 6.2 1.7 -2.5 -9.0 -13.4 -8.5 -4.7 -1.9 2.6 7.8 7.3 12.5 11.9 6.0 1.7 -6.8 -8.9 -18.8 -16.9 -11.0 -9.3 -4.3 1.1 2.9 0.6 -2.7 -6.6 -11.2 -17.9
F116 51.5 -115.3 -11.3 -7.8 -2.8 1.2 5.9 7.6 11.6 10.1 5.4 2.4 -3.9 -10.2 -5.7 -0.7 2.4 8.4 13.4 12.7 18.3 17.3 11.4 9.0 0.8 -5.1 -17.0 -15.0 -8.1 -5.9 -1.5 2.4 4.9 2.9 -0.7 -4.2 -8.7 -15.3
F117 51.5 -115.2 -11.2 -7.7 -2.6 1.4 6.2 7.8 11.8 10.3 5.6 2.6 -3.7 -10.1 -5.6 -0.5 2.8 8.6 13.6 13.0 18.6 17.5 11.7 9.2 1.2 -4.9 -16.9 -14.9 -8.0 -5.8 -1.3 2.6 5.0 3.1 -0.5 -4.1 -8.6 -15.2
F118 51.5 -115.1 -11.1 -7.4 -2.4 1.6 6.4 8.1 12.0 10.6 5.9 2.7 -3.4 -9.9 -5.4 -0.1 3.2 8.9 13.9 13.3 18.9 17.7 11.9 9.4 1.8 -4.7 -16.8 -14.7 -8.0 -5.6 -1.0 2.8 5.2 3.6 -0.1 -3.9 -8.6 -15.0
F119 51.5 -115.0 -10.9 -7.2 -2.2 1.9 6.7 8.4 12.3 10.9 6.2 3.0 -2.9 -9.6 -5.2 0.3 3.6 9.3 14.2 13.7 19.3 18.1 12.3 9.7 2.6 -4.3 -16.7 -14.6 -8.0 -5.4 -0.8 3.0 5.4 3.8 0.1 -3.8 -8.4 -14.8
F120 51.5 -114.9 -10.6 -6.6 -1.7 2.4 7.0 8.6 12.6 11.0 6.3 3.3 -2.5 -9.0 -4.7 1.1 4.4 9.8 14.7 14.2 19.8 18.5 12.9 10.1 3.1 -3.4 -16.5 -14.3 -7.9 -5.0 -0.8 3.1 5.3 3.4 -0.2 -3.5 -8.2 -14.5
F121 51.5 -114.8 -10.3 -6.2 -1.3 2.7 7.2 8.9 12.7 11.2 6.5 3.5 -2.3 -8.5 -4.2 1.7 5.1 10.2 15.1 14.7 20.3 18.9 13.3 10.4 3.3 -2.8 -16.3 -14.0 -7.7 -4.7 -0.7 3.1 5.2 3.4 -0.4 -3.4 -7.8 -14.2
...
我想要的是一个时间序列布局,其中每一行代表每个离散 ID 的每月条目,变量(Tmean、Tmin、Tmax)作为列。所以我最终会为每个唯一 ID 提供 12 行。像这样的...
ID Month Tave Tmax Tmin
F102 1 -12.8 -8.0 -17.5
F102 2 -9.2 -2.8 -15.6
F102 3 -4.6 0.4 -9.5
F102 4 4.1 5.2 -6.9
...
F102 12 -12.0 -7.6 -16.4
F103 1 -13.0 -7.9 -17.5
F103 2 -9.5 -2.9 -16.1
...
每个站点和每个月等等。
我可以通过循环或其他方式通过所有变量强制执行此操作并填充 expand.grid 表或其他内容,但必须有一个更优雅(即更快更容易)的解决方案。
我查看了 reshape 包,但似乎无法找到我需要的东西。
【问题讨论】:
-
谢谢亨利克。 “宽格式”到“长格式”是我在搜索中缺少的词汇。这个使用 reshape 的答案正是我所需要的:stackoverflow.com/questions/36085161/…
标签: r time-series reshape