Я очень плохо знаком с R (а также с SO, по крайней мере, с ответом), но я бы использовал gather
из пакета tidyr
для этой задачи.
Немного сложно представить ваши данные без примера, поэтому я сделаю свои собственные (на самом деле я не понимаю, почему должна быть дата в первом столбце, а затем в других столбцах для каждого дня)):
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
...
...
...