Я использую подход О'Брайена для решения этой проблемы:
Расчет предельных налоговых ставок с использованием R
Я пытаюсь применить базовую формулу
> sum(diff(c(0, pmin(income, brackets))) * rates)
из функции О'Брайена:
income_tax <-
function(income,
brackets = c(18200, 37000, 80000, 180000, Inf),
rates = c(0, .19, .325, .37, .45)) {
sum(diff(c(0, pmin(income, brackets))) * rates)
}
в список:
income <- c(16000, 45000, 200000, 150000)
Я получаю следующие предупреждения:
Предупреждениесообщения: 1: в pmin (): аргумент будет частично переработан. 2: в diff (): большая длина объекта не кратна короткой длине объекта
Вместе с выводом из последнего элемента всписок доходов
Ожидаемый результат также является списком сумм налогов, рассчитанных по базовой формуле
Может ли кто-нибудь указать мне правильное направление?Или есть более элегантный способ сделать это?