Форматирование дат в R

#r

Вопрос:

Я пытаюсь очистить набор данных таким образом, чтобы у меня был столбец дат с соответствующими месяцами и ежегодным снегопадом за соответствующий месяц.

Я борюсь с этим и прошу о некоторой помощи.

Вот как выглядят мои данные в настоящее время

Вместо того, чтобы быть столбцами для каждого месяца, я хотел бы, чтобы у меня была одна колонка с каждым годом/месяцем, включая колонку с соответствующим ежегодным снегопадом.

 SEASON JUL AUG SEP OCT NOV DEC JAN FEB MAR APR MAY JUN TOTAL  lt;chrgt; lt;dblgt; lt;dblgt; lt;dblgt; lt;dblgt; lt;dblgt; lt;dblgt; lt;dblgt; lt;dblgt; lt;dblgt; lt;dblgt; lt;dblgt; lt;dblgt; lt;dblgt;  1 1869-70 0 0 0 0 0 5.3 1.1 9.3 9.6 2.5 0 0 27.8  2 1870-71 0 0 0 0 0 3 15.9 12.1 0.1 2 0 0 33.1  3 1871-72 0 0 0 0 0.3 3.9 1.8 3 5.1 0 0 0 14.1  4 1872-73 0 0 0 0 3.5 27 10.6 18.8 0.4 0 0 0 60.3  5 1873-74 0 0 0 0 2 9.3 6.6 19 0 0 0 0 36.9  6 1874-75 0 0 0 0 0 10 14.5 4.5 15.3 13.5 0 0   

Комментарии:

1. Можете ли вы предоставить некоторые данные? По крайней мере, несколько строк вашего набора данных, чтобы было проще написать решение.

2. @Bloxx Я считаю, что сделал это правильно. Дайте мне знать, если вам нужно больше строк, или если это нормально.

Ответ №1:

Попробуйте это: давайте предположим, что ваш фрейм данных называется «df»!

 library(dplyr) df lt;- df %gt;% pivot_longer(cols = c(JUL:JUN)) %gt;% select(SEASON, name, value, TOTAL) %gt;% rename(MONTH = "name", VALUE = "value")  

Комментарии:

1. Если вы хотите, чтобы сезон и месяц были в одном столбце, используйте этот код: df lt;- df %gt;% pivot_longer(cols = c(JUL:JUN)) %gt;% select(SEASON, name, value, TOTAL) %gt;% rename(MONTH = "name", VALUE = "value") %gt;% tidyr::unite("month", 1:2, sep = " ")

2. функция «pivot_longer» не существует в библиотеке(dplyr)

3. Я получаю следующее сообщение об ошибке: Ошибка в pivot_longer(., cols = c(июль:ИЮНЬ)) : не удалось найти функцию «pivot_longer»

4. Я думаю, что библиотека может быть «tidyr»?

5. вы должны установить оба (dplyr и tidyr). Но вы можете «вызвать» библиотеку(dplyr) в качестве основной. Мы используем пакет tidyr только для unite функции, поэтому мы называем его: tidyr::unite