Ah, gracias..
Me he creado uno de forma sintética...
Esta es una forma...
#---------------------------------
library(dplyr)
library(tidyr)
library(lubridate)
crear_data_frame <- function(anios_inicio, anios_fin) {
+ anios_meses <- expand.grid(Year = anios_inicio:anios_fin, Month = 1:12)
+ anios_meses$yearmon <- paste0(anios_meses$Year, "-", sprintf("%02d",
anios_meses$Month))
+ vars <- replicate(5, runif(nrow(anios_meses)))
+ data.frame(anios_meses, vars, stringsAsFactors = FALSE) %>%
+ select(-Year, -Month) %>%
+ arrange(yearmon)
+ }
df <- crear_data_frame(2019, 2022)
head(df)
yearmon X1 X2 X3 X4 X5
1 2019-01 0.2783405 0.1556831 0.007564986 0.9981701 0.35200632
2 2019-02 0.3906244 0.1525354 0.794696565 0.6935012 0.15611665
3 2019-03 0.3607439 0.2350400 0.208026463 0.1175302 0.84753470
4 2019-04 0.7787032 0.3713333 0.697207166 0.3701457 0.04013776
5 2019-05 0.4973347 0.6898472 0.603442922 0.5696876 0.63328772
6 2019-06 0.5392983 0.9604180 0.456174444 0.7767546 0.62486765
+ mutate(year = year(ym(yearmon))) %>%
+ mutate(month = month(ym(yearmon))) %>%
+ select(-year) %>%
+ relocate(month, .after = yearmon) %>%
+ pivot_longer( cols = X1:X5) %>%
+ mutate(mes_avg = mean(value), .by = month) %>%
+ select(month, mes_avg) %>%
+ distinct() %>%
+ as.data.frame
month mes_avg
1 1 0.4305554
2 2 0.4485030
3 3 0.4451672
4 4 0.4101606
5 5 0.4715812
6 6 0.5428447
7 7 0.5350282
8 8 0.4792279
9 9 0.5052422
10 10 0.4272948
11 11 0.5197938
12 12 0.3883511
#------------------------------------
El mié, 29 mar 2023 a las 21:54, David Camilo Gomez Medina (<
dcgomezme en unal.edu.co>) escribió:
Claro Carlos, gracias, exporté el dataframe a Excel.
On Wed, 29 Mar 2023 at 14:44, Carlos Ortega <cof en qualityexcellence.es>
wrote:
Hola,
Puedes pasar una pequeña muestra del conjunto para darte la solución...
Gracias,
Carlos Ortega
www.qualityexcellence.es
El mié, 29 mar 2023 a las 21:38, David Camilo Gomez Medina (<
dcgomezme en unal.edu.co>) escribió:
Buen dÃa a todos,
Tengo un dataframe donde está almacenada la información por año y mes,
deseo calcular el promedio de todos los meses, es decir, obtener el
promedio mensual multianual de cada columna. He intentado realizarlo con la
función aggregate, pero no sé cómo seleccionar solamente el mes. Por
ejemplo, coger solo el mes de enero ('01') de cada año y promediarlo.
Quedo muy atento, muchas gracias.
[image: image.png]
*Aviso legal:* El contenido de este mensaje y los archivos adjuntos
son confidenciales y de uso exclusivo de la Universidad Nacional de
Colombia. Se encuentran dirigidos sólo para el uso del destinatario al cual
van enviados. La reproducción, lectura y/o copia se encuentran prohibidas a
cualquier persona diferente a este y puede ser ilegal. Si usted lo ha
recibido por error, infórmenos y elimÃnelo de su correo. Los Datos
Personales serán tratados conforme a la Ley 1581 de 2012 y a nuestra
PolÃtica de Datos Personales que podrá consultar en la página web
www.unal.edu.co. Las opiniones, informaciones, conclusiones y
cualquier otro tipo de dato contenido en este correo electrónico, no
relacionados con la actividad de la Universidad Nacional de Colombia, se
entenderá como personales y de ninguna manera son avaladas por la
Universidad.