Я бразилец, извините за мой английский!
Я хотел бы знать, существует ли функция, реализованная в каком-либо пакете R, для фильтрации первых «n» строк и группировки остальных в строку «Other» и суммирования столбца.
Вот пример того, что я хочу:
library(tidyverse)
library(plotly)
library(scales)
data("lakers")
x = bind_rows(
lakers %>% count(player) %>% arrange(-n) %>% head(10),
lakers %>% count(player) %>% arrange(-n) %>% slice(11:n()) %>%
summarise(player = "Others", n = sum(n))) %>%
filter(!player == "") %>%
mutate(
player = factor(player, levels = rev(.$player)))
ggplot(x, aes(x=player, y=n))+
geom_col(fill = "DodgerBlue1", col = "DodgerBlue3")+
coord_flip()+
geom_text(aes(y=n, label = comma(n)),hjust = -.2)+
scale_y_continuous(limits = c(0, max( x$n*1.1 )))+
theme_minimal()
Мне нужно создать такой ggplot. Итак, у меня большой запрос с использованием dplyr, и я не хочу повторять запрос каждый раз.
Мне бы хотелось, чтобы какая-то функция была:
head.other(x, rows = 20, fun = sum, name = "Others")