Ответ 1
Пол года в R до ближайшего десятилетия:
Думайте о модуле как о способе извлечь самую правую цифру и использовать ее для вычитания из исходного года. 1998 - 8 = 1990
> 1992 - 1992 %% 10
[1] 1990
> 1998 - 1998 %% 10
[1] 1990
Потолок года в R до ближайшего десятилетия:
Потолок точно такой же, как пол, но добавьте 10.
> 1998 - (1998 %% 10) + 10
[1] 2000
> 1992 - (1992 %% 10) + 10
[1] 2000
Круглый год в R до ближайшего десятилетия:
Целочисленное деление преобразует ваш 1998 в 199,8, округленное до целого 200, умножьте это на 10, чтобы вернуться к 2000.
> round(1992 / 10) * 10
[1] 1990
> round(1998 / 10) * 10
[1] 2000
Удобная копировальная паста для тех, кто не любит думать:
floor_decade = function(value){ return(value - value %% 10) }
ceiling_decade = function(value){ return(floor_decade(value)+10) }
round_to_decade = function(value){ return(round(value / 10) * 10) }
print(floor_decade(1992))
print(floor_decade(1998))
print(ceiling_decade(1992))
print(ceiling_decade(1998))
print(round_to_decade(1992))
print(round_to_decade(1998))
который печатает:
# 1990
# 1990
# 2000
# 2000
# 1990
# 2000
Источник: https://rextester.com/AZL32693
Не стесняйтесь клейкой ленты с этой док-станцией, это единственное, что удерживает устройство вместе.