карта месяцев в сезон на языке R - PullRequest
0 голосов
/ 09 мая 2018

Я новичок в программировании на R. На самом деле я хочу нанести на карту сезоны (например, зима, лето, муссон, пост муссон) в зависимости от месяца. Я попробовал ниже код. Просьба направить меня на то же самое.

ifelse((air_quality$Month %in% c('12','01','02','04')),air_quality$Seasons = 'Winter',
ifelse((air_quality$Month %in% c('04','05','06')),air_quality$Seasons = 'Summer',
ifelse((air_quality$Month %in% c('07','08','09')),air_quality$Seasons = 'Monsoon','Post Monsoon')))

Спасибо заранее. AP

1 Ответ

0 голосов
/ 09 мая 2018

Похоже, что "04" в вашем примере относится как к "зиме", так и к "лету". Если мы предположим, что один месяц принадлежит только одному сезону, а сезоны - это зима, лето, муссон и пост-муссон, то один из способов преобразования месяцев в сезоны:

library(stringr) # to produce strings padded with zeros 
air_quality <- data.frame(Month = str_pad(sample(1:12,12, replace=FALSE),
                                          width = 2, 
                                          side = "left", pad="0"))

# Create a mapping vector and print it
( seasons <- c( rep("Winter",2), 
                rep("Summer",3), 
                rep("Monsoon",3), 
                rep("Postmonsoon",3), 
                "Winter") )
#[1] "Winter"      "Winter"      "Summer"      "Summer"      "Summer"      "Monsoon"     "Monsoon"    
#[8] "Monsoon"     "Postmonsoon" "Postmonsoon" "Postmonsoon" "Winter"     

air_quality$Seasons <- seasons[ as.numeric(air_quality$Month) ]
air_quality
#    Month     Seasons
# 1     07     Monsoon
# 2     06     Monsoon
# 3     11 Postmonsoon
# 4     01      Winter
# 5     05      Summer
# 6     09 Postmonsoon
# 7     03      Summer
# 8     08     Monsoon
# 9     10 Postmonsoon
# 10    02      Winter
# 11    04      Summer
# 12    12      Winter
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...