Я думаю, что логика c была немного неправильной в вашей попытке. Также вам понадобился еще else
в конце для первого if
.
year <- 1990
if((year %% 4) == 0) {
if((year %% 100) == 0) {
if((year %% 400) == 0) {
print(paste(year,"is a leap year"))
} else {
print(paste(year,"is not a leap year"))
}
} else {
print(paste(year,"is a leap year"))
}
} else {
print(paste(year,"is not a leap year"))
}
Вы также можете рассмотреть возможность использования функции leap_year
из lubridate
, которая делает это «из коробки».
lubridate::leap_year(1990)
#[1] FALSE
lubridate::leap_year(2000)
#[1] TRUE
В частности, leap_year в функции задается как (year%%4 == 0) & ((year%%100 != 0) | (year%%400 == 0))