Проблема
Я пытаюсь написать заявление dplyr::case_when
, в котором используется max
для выработки государственной выплаты, выплачиваемой при различных уровнях дохода.Сумма, подлежащая уплате получателям, уменьшается на фиксированную сумму после прохождения определенного уровня дохода.Они не могут получить менее $ 0 (они не могут стать чистыми плательщиками). Так что в расчете необходим пол .
При использовании функции max
переменная benefit
(ниже) поддерживается постоянной на уровне 237 долл. США, когда income
находится между 53 728 и 94 316 долл. США.Я не понимаю, почему это происходит.
Если функция max
удалена, я получаю правильный ответ, но только для части диапазона.Мне все еще нужен способ ввести минимальное значение $ 0 для переменной benefit
в операторе dplyr::case_when
.
Моя попытка
library(tidyverse)
tibble(
income = 53728:100000,
benefit = case_when(
income <= 53728 ~ 237.89,
between(income, 53728, 94316) ~ max(237.89 - ((income - 53725) * 0.20), 0),
TRUE ~ 0
)
)
#Quick plot of the variables
ggplot(df, aes(x = income, benefit)) +
geom_line() +
theme_light() +
scale_x_continuous(labels = scales::dollar)