Я очень новичок в программировании и недавно начал экспериментировать с R для целей анализа данных. В настоящее время я пытаюсь создать новый столбец на моем df на основе значений из другого столбца и суммировать общее количество осадков для каждого. Я получил свои климатические данные с сайта климатической группы PRISM и добавил следующий код для разделения полученного поля даты (1980-01) на годы и месяцы
climate <- tidyr::separate(climate,date, c("year", "month"), sep = "-")
Мой вопрос как я могу go добавить новый столбец, который добавляет текст в зависимости от месяца?
Мой текущий подход к псевдокоду:
if climate$month == 1,2,3 then climate$season == winter
else climate$month == 4,5,6 then climate$season == spring
else climate$month == 7,8,9 then climate$season == summer
else climate$month == 10,11,12 climate$season == fall
Моя цель - сгенерировать новое значение df с рассчитанной суммой осадков для каждого сезона каждого года, избегая использования Excel * 1012. *
Спасибо за совет!
Решено, вот окончательный рабочий результат для будущего использования:
#Read in PRSIM data
prism <- read.csv('PRISM.csv')
#Seperate Date into Year - Month
prism <- tidyr::separate(prism,date, c("year", "month"), sep = "-")
#Convert factor variable into numeric
library(dplyr)
prism <- prism %>% mutate(month= as.numeric(as.character(month)))
#Generate new season column based on month
prism <- prism %>% mutate(season = case_when(
month < 4 ~ "winter",
month < 7 ~ "spring",
month < 10 ~ "summer",
month < 13 ~ "fall",
TRUE ~ NA_character_
))
#Generate new data frame with Year and sum of each seasons value
clima <- prism %>%
group_by(year, season) %>%
summarise(ppt_mm = sum(ppt_mm), tmin_c = sum(tmin_c), tmean_c = sum(tmean_c), tmax_c = sum(tmax_c), vdpmin_hpa = sum(vdpmin_hpa), vdpmax_hpa = sum(vdpmax_hpa))
#By Season
spring <- clima[clima$season=="spring", ]
summer <- clima[clima$season=="summer", ]
fall <- clima[clima$season=="fall", ]
winter <- clima[clima$season=="winter", ]