У меня есть длинный набор данных, в каждой строке которого указана ставка подоходного налога штата за этот год. Вот несколько строк в качестве примера:
State statefip year TopRate
<chr> <dbl> <fct> <dbl>
1 Alabama 1 2018 0.05
2 Alabama 1 2017 0.05
3 Alabama 1 2016 0.05
4 Alabama 1 2015 0.05
5 Alabama 1 2014 0.05
6 Alabama 1 2013 0.05
7 Alabama 1 2012 0.05
8 Alabama 1 2011 0.05
9 Alabama 1 2010 0.05
10 Alaska 2 2018 0
Я хотел бы создать дополнительный столбец, который является квантилем (0,5, 0,75, 0,80 и т. Д.) Для каждого года. Таким образом, столбец 0,5 (медиана) будет иметь медианную ставку налога для всех штатов в 2018 году и так далее для каждого года. Чтобы уточнить, каждое наблюдение для данного штата в 2018 году будет иметь одинаковую ставку налога для 0,5, но они будут меняться каждый год. Хотя это может показаться странным, это поможет мне, когда мне придется объединить эти данные с другими данными, которые у меня будут позже. Заранее благодарим за любую помощь!
Изменить: вот что я хочу ...
State statefip year TopRate median q3 q80 q85 q90 jenkb$jenkb
<chr> <dbl> <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <int>
1 Alabama 1 2018 0.05 0.0575 0.0700 0.074 0.0888 0.0897 0
2 Alabama 1 2017 0.05 0.0575 0.0700 0.074 0.0854 0.0895 0
3 Alabama 1 2016 0.05 0.0575 0.0700 0.074 0.0854 0.0895 0
4 Alabama 1 2015 0.05 0.0575 0.0700 0.074 0.0888 0.0897 0
5 Alabama 1 2014 0.05 0.058 0.07 0.0765 0.0888 0.0897 0
6 Alabama 1 2013 0.05 0.0599 0.072 0.0775 0.0839 0.0895 0
7 Alabama 1 2012 0.05 0.06 0.072 0.0775 0.0866 0.0895 0
8 Alabama 1 2011 0.05 0.06 0.0738 0.078 0.085 0.0897 0
9 Alabama 1 2010 0.05 0.06 0.0738 0.078 0.0872 0.0897 1
10 Alaska 2 2018 0 0.0575 0.0700 0.074 0.0888 0.0897 0
# ... with 449 more rows
За исключением того, что я хочу, чтобы столбец JenkB был 1 за каждый год, когда состояние попадает во вторую корзину для перерыва Дженкса для данного года.
taxlong %>%
group_by(year) %>%
mutate(median = quantile(TopRate, .5)) %>%
mutate(q3 = quantile(TopRate, .75)) %>%
mutate(q80 = quantile(TopRate, .80)) %>%
mutate(q85 = quantile(TopRate, .85)) %>%
mutate(q90 = quantile(TopRate, .90)) #%>%
#mutate(jenkb = as.integer((TopRate > 0.0323 & year == 2018 | 2017 | 2015) | (TopRate > 0.0375 & year == 2016) | (TopRate > 0.034 & year == 2014 | 2013 | 2012 | 2011 | 2010)))
Этот код не работал