geom_rect
принимает 4 координаты и составляет прямоугольник.mutate_at(-1
с funs(...)
в качестве второго аргумента создает новые переменные для каждого столбца, кроме столбца 1 с функцией, указанной внутри funs
.То же самое для mutate_at(vars(matches('cum'))
, но в этом случае новые столбцы создаются только для переменных, имя которых содержит 'cum'
.
library(tidyverse)
df <- read_table("
Product Revenue Quantity Rev Cum Quat Cum
Product_A 50% 40% 50% 40%
Product_B 25% 30% 75% 70%
Product_C 15% 20% 90% 90%
Product_D 10% 10% 100% 100%
")[1:3]
df %>%
mutate_at(-1, funs(cum = cumsum(parse_number(.)))) %>%
mutate_at(vars(matches('cum')), funs(lag = lag(., default = 0))) %>%
ggplot() +
geom_rect(aes(xmin = Revenue_cum_lag,
ymin = Quantity_cum_lag,
xmax = Revenue_cum,
ymax = Quantity_cum))