#El dataframe ventas, contiene los datos de venta para una empresa de artículos de oficina, con operaciones en Estados Unidos, para los años de 2015-2018.
A partir de esos datos, resuelva lo siguiente:
Cree una función, que permita obtener las ventas anuales, trimestrales o mensuales, según se indique en el argumento, dichas ventas podrán ser totales, o por segmento de mercado.
Con la implementación de dicha función muestre:
Las ventas totales trimestrales, para todos los segmentos.
Las ventas totales anuales para el segmento corporativo.
Las ventas totales mensuales para el segmento consumidor.
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
data_ventas <- function(periodo = "anual", segmento = NULL, anuales = NULL, trimestreles = NULL, mensuales = NULL) {
dataventas %>%
filter(
if (!is.null(segmento)) Segmento == segmento else TRUE,
if (!is.null(anual)) anio == año else TRUE,
if (!is.null(trimestal)) trimestreles == trimestre else TRUE,
if (!is.null(mensual)) mes == mes else TRUE
) %>%
group_by(across(case_when(
anua == "anual" ~ "anio",
trimest == "trimestral" ~ c("anio", "trimestre"),
mes == "mensual" ~ c("anio", "mes"),
TRUE ~ stop("Periodo no válido")
))) %>%
summarise(ventas_Netas = sum(Sales)) %>%
arrange(across(everything())) %>%
as.data.frame()
}
## # A tibble: 9,800 × 9
## anio mes trimestre `Order ID` `Customer ID` Segment State dias.envio
## <dbl> <dbl> <dbl> <chr> <chr> <chr> <chr> <dbl>
## 1 2017 11 4 CA-2017-152156 CG-12520 Consumer Kent… 3
## 2 2017 11 4 CA-2017-152156 CG-12520 Consumer Kent… 3
## 3 2017 6 2 CA-2017-138688 DV-13045 Corporate Cali… 4
## 4 2016 10 4 US-2016-108966 SO-20335 Consumer Flor… 7
## 5 2016 10 4 US-2016-108966 SO-20335 Consumer Flor… 7
## 6 2015 6 2 CA-2015-115812 BH-11710 Consumer Cali… 5
## 7 2015 6 2 CA-2015-115812 BH-11710 Consumer Cali… 5
## 8 2015 6 2 CA-2015-115812 BH-11710 Consumer Cali… 5
## 9 2015 6 2 CA-2015-115812 BH-11710 Consumer Cali… 5
## 10 2015 6 2 CA-2015-115812 BH-11710 Consumer Cali… 5
## # ℹ 9,790 more rows
## # ℹ 1 more variable: Sales <dbl>
library(dplyr)
ventas_anual <- ventas %>%
group_by(anio) %>%
summarise(ventas_anuales = sum(Sales)) %>%
arrange(anio) %>%
as.data.frame() %>%
print()
## anio ventas_anuales
## 1 2015 479856.2
## 2 2016 459436.0
## 3 2017 600192.6
## 4 2018 722052.0
library(dplyr)
ventas_mensuales <- ventas %>%
group_by(anio, mes) %>%
summarise(ventas_mensuales = sum(Sales)) %>%
arrange(anio, mes) %>%
as.data.frame() %>%
print()
## `summarise()` has grouped output by 'anio'. You can override using the
## `.groups` argument.
## anio mes ventas_mensuales
## 1 2015 1 14205.707
## 2 2015 2 4519.892
## 3 2015 3 55205.797
## 4 2015 4 27906.855
## 5 2015 5 23644.303
## 6 2015 6 34322.936
## 7 2015 7 33781.543
## 8 2015 8 27117.536
## 9 2015 9 81623.527
## 10 2015 10 31453.393
## 11 2015 11 77907.661
## 12 2015 12 68167.058
## 13 2016 1 18066.958
## 14 2016 2 11951.411
## 15 2016 3 32339.318
## 16 2016 4 34154.469
## 17 2016 5 29959.531
## 18 2016 6 23599.374
## 19 2016 7 28608.259
## 20 2016 8 36818.342
## 21 2016 9 63133.606
## 22 2016 10 31011.737
## 23 2016 11 75249.399
## 24 2016 12 74543.601
## 25 2017 1 18542.491
## 26 2017 2 22978.815
## 27 2017 3 51165.059
## 28 2017 4 38679.767
## 29 2017 5 56656.908
## 30 2017 6 39724.486
## 31 2017 7 38320.783
## 32 2017 8 30542.200
## 33 2017 9 69193.391
## 34 2017 10 59583.033
## 35 2017 11 79066.496
## 36 2017 12 95739.121
## 37 2018 1 43476.474
## 38 2018 2 19920.997
## 39 2018 3 58863.413
## 40 2018 4 35541.910
## 41 2018 5 43825.982
## 42 2018 6 48190.728
## 43 2018 7 44825.104
## 44 2018 8 62837.848
## 45 2018 9 86152.888
## 46 2018 10 77448.131
## 47 2018 11 117938.155
## 48 2018 12 83030.389