Как упорядочить ежедневные данные о количестве осадков в одном столбце? - PullRequest
0 голосов
/ 18 июня 2019

Мой фрейм данных содержит: 1-й столбец - это дата (состоит из обычного и високосного года), 2-й и 32-й столбцы - это день (1-й день, 2-й день ... 31-й день). Как разместить этот набор данных в одном столбце.

1 Ответ

1 голос
/ 18 июня 2019

Я очень плохо знаком с 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
...
...
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...