如何将每日时间序列降雨数据排列到单个列?

时间:2019-06-18 08:17:25

标签: r

我的数据框包括:第1列是日期(由正常和leap年组成),第2到32列是日(第1天,第2天...第31天) 如何将此数据集排列到单个列中。

1 个答案:

答案 0 :(得分:1)

我对R(以及SO,至少是在回答方面)很陌生,但我会使用gather包中的tidyr来完成此任务。

很难想象没有示例的数据,所以我会自己写(实际上,我不明白为什么每天在第一列然后是其他列中都应该有一个日期):< / p>

  Date       day_1 day_2 day_3 day_4 day_5 day_6 ... day_31
  ----       ----- ----- ----- ----- ----- ----- ... ------
1 2019-05-01     1     1     1     0     0     5 ...      6
2 2019-05-02     4     0     2     1     4     5 ...      4
3 2019-05-03     3     2     5     0     5     2 ...      2

您可以使用gather将列转换为以下行。

gather(Data, key = "Day", value = "Rainfall", 2:32)

第一个参数(Data)是您的数据集。 key参数定义“键”列应具有的名称,而value定义值列的名称。 2:32部分意味着您希望将2到32列包括在结果中。如果您没有提到的其他列,则也可以使用-1代替2:32,这只是意味着忽略第一列。

这将为您提供以下结果:

         Date    Day Rainfall
1  2019-05-01  day_1        1
2  2019-05-02  day_1        4
3  2019-05-03  day_1        3
4  2019-05-01  day_2        1
5  2019-05-02  day_2        0
6  2019-05-03  day_2        2
7  2019-05-01  day_3        1
8  2019-05-02  day_3        2
9  2019-05-03  day_3        5
10 2019-05-01  day_4        0
11 2019-05-02  day_4        1
...
...
...