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