Cómo agregar datos diarios a mensuales y anuales en R

Actualizado por ultima vez el 7 de mayo de 2021, por .

Ocasionalmente, es posible que desee agregar datos diarios a datos semanales, mensuales o anuales en R.

Este tutorial explica cómo hacerlo fácilmente usando los paquetes lubridate y dplyr .

Ejemplo: datos diarios agregados en R

Suponga que tenemos el siguiente marco de datos en R que muestra las ventas diarias de algún artículo en el transcurso de 100 días consecutivos:

#Haga que este ejemplo sea reproducible
 set.seed (1)
 
#create data frame 
df <- data.frame (date = as.Date (" 2020-12-01 ") + 0:99,
                 ventas = runif (100, 20, 50))

#ver las primeras seis filas
cabeza (df)

        ventas de fecha
1 2020-12-01 27.96526
2 2020-12-02 31.16372
3 2020-12-03 37.18560
4 2020-12-04 47.24623
5 2020-12-05 26.05046
6 2020-12-06 46.95169

Para agregar estos datos, podemos usar la función floor_date () del paquete lubridate que usa la siguiente sintaxis:

floor_date (x, unidad)

dónde:

  • x: un vector de objetos de fecha.
  • unidad: una unidad de tiempo a la que se redondea. Las opciones incluyen segundo, minuto, hora, día, semana, mes, bimestral, trimestre, medio año y año.

Los siguientes fragmentos de código muestran cómo utilizar esta función junto con la group_by () y resume () funciones de la dplyr paquete para encontrar las ventas medias por semana, mes, y año:

Ventas medias por semana

biblioteca (lubridate) 
biblioteca (dplyr)

#fechas redondeadas hasta la semana 
df $ week <- floor_date (df ​​$ date, " week ")

# encontrar las ventas medias por semana
 df%>%
   group_by (semana)%>%
   resumir (media = media (ventas))

# A tibble: 15 x 2
   semana media
        
 1 2020-11-29 33,9
 2 2020-12-06 35,3
 3 2020-12-13 39,0
 4 2020-12-20 34,4
 5 2020-12-27 33,6
 6 2021-01-03 35,9
 7 2021-01-10 37,8
 8 2021-01-17 36,8
 9 2021-01-24 32,8
10 2021-01-31 33,9
11 2021-02-07 34,1
12 14/02/2021 41,6
13 2021-02-21 31,8
14 2021-02-28 35,2
15 2021-03-07 37,1

Ventas medias por mes

biblioteca (lubridate) 
biblioteca (dplyr)

#fechas redondeadas hasta la semana 
df $ mes <- floor_date (df ​​$ fecha, " mes ")

# encontrar las ventas medias por mes
 df%>% 
  group_by (mes)%>% 
  resumir (media =  media (ventas))

# A tibble: 4 x 2
  mes promedio
       
1 2020-12-01 35,3
2 2021-01-01 35,6
3 2021-02-01 35.2
4 2021-03-01 37.0

Ventas medias por año

biblioteca (lubridate) 
biblioteca (dplyr)

# fechas redondeadas hasta la semana 
df $ año <- floor_date (df ​​$ fecha, " año ")

# encontrar las ventas medias por mes
 df%>% 
  group_by (año)%>% 
  resumir (media = media (ventas))

# A tibble: 2 x 2
  año medio
       
1 2020-01-01 35,3
2 2021-01-01 35,7

Tenga en cuenta que elegimos agregar por la media, pero podríamos usar cualquier estadística de resumen que nos gustaría, como la mediana, la moda, el máximo, el mínimo, etc.

Recursos adicionales

Cómo calcular la media por grupo en R
Cómo calcular sumas acumulativas en R
Cómo trazar una serie de tiempo en R

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

La distancia euclidiana entre dos vectores, A y B, se calcula como: Distancia euclidiana = √ Σ (A i -B…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!