Ah... veo que tienes algunos valores nulos... Entonces para calcular la media, habría que incluir este otro cambio:
*+ mutate(mes_avg = mean(value, na.rm = TRUE), .by = c(month, vars)) %>%* Saludos, Carlos Ortega www.qualityexcellence.es El mié, 29 mar 2023 a las 22:17, Carlos Ortega (<c...@qualityexcellence.es>) escribió: > Ah... > Sí, de esta forma... > > > resout <- df %>% > + mutate(year = year(ym(yearmon))) %>% > + mutate(month = month(ym(yearmon))) %>% > + select(-year) %>% > + relocate(month, .after = yearmon) %>% > + > > * pivot_longer( cols = X1:X5, names_to = "vars" ) %>%+ mutate(mes_avg = > mean(value), .by = c(month, vars)) %>%+ select(month, vars, mes_avg) %>%* > + distinct() %>% > + as.data.frame > > resout > month vars mes_avg > 1 1 X1 0.5063388 > 2 1 X2 0.6054863 > 3 1 X3 0.4747568 > 4 1 X4 0.6525521 > 5 1 X5 0.3378098 > 6 2 X1 0.6480751 > 7 2 X2 0.3866987 > 8 2 X3 0.5628610 > 9 2 X4 0.2965187 > 10 2 X5 0.5039561 > 11 3 X1 0.3565034 > 12 3 X2 0.5595157 > 13 3 X3 0.4526992 > 14 3 X4 0.5256429 > 15 3 X5 0.5396339 > 16 4 X1 0.3492785 > 17 4 X2 0.4719472 > 18 4 X3 0.6069615 > 19 4 X4 0.5099684 > 20 4 X5 0.5375129 > 21 5 X1 0.6083371 > 22 5 X2 0.6986131 > 23 5 X3 0.3419662 > 24 5 X4 0.4950851 > 25 5 X5 0.5467911 > 26 6 X1 0.2031233 > 27 6 X2 0.4891435 > 28 6 X3 0.3186853 > 29 6 X4 0.7101540 > 30 6 X5 0.4964806 > 31 7 X1 0.4853932 > 32 7 X2 0.5883874 > 33 7 X3 0.8781151 > 34 7 X4 0.4065725 > 35 7 X5 0.3009754 > 36 8 X1 0.4974401 > 37 8 X2 0.6118529 > 38 8 X3 0.6042984 > 39 8 X4 0.3386884 > 40 8 X5 0.6710002 > 41 9 X1 0.6392356 > 42 9 X2 0.4150898 > 43 9 X3 0.5861839 > 44 9 X4 0.4325483 > 45 9 X5 0.6310271 > 46 10 X1 0.4523220 > 47 10 X2 0.5130199 > 48 10 X3 0.3362966 > 49 10 X4 0.5372736 > 50 10 X5 0.5077318 > 51 11 X1 0.4055051 > 52 11 X2 0.4510812 > 53 11 X3 0.2245734 > 54 11 X4 0.7682052 > 55 11 X5 0.3541822 > 56 12 X1 0.6346173 > 57 12 X2 0.5956540 > 58 12 X3 0.3881634 > 59 12 X4 0.6156253 > 60 12 X5 0.6732854 > > > > #--------- > > Gracias, > Carlos Ortega > www.qualityexcellence.es > > > El mié, 29 mar 2023 a las 22:12, David Camilo Gomez Medina (< > dcgome...@unal.edu.co>) escribió: > >> Muchísimas gracias Carlos, aunque yo quiero conservar las columnas. Por >> ejemplo, tú creaste información del año 2019 a 2022, para la columna X1 >> quiero calcular el promedio de enero para esos años y así con las demás >> columnas. ¿Cómo podría cambiar tu código? >> >> On Wed, 29 Mar 2023 at 15:05, Carlos Ortega <c...@qualityexcellence.es> >> wrote: >> >>> 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 >>> > >>> > resout <- df %>% >>> + 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 >>> > resout >>> 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 (< >>> dcgome...@unal.edu.co>) escribió: >>> >>>> Claro Carlos, gracias, exporté el dataframe a Excel. >>>> >>>> >>>> >>>> On Wed, 29 Mar 2023 at 14:44, Carlos Ortega <c...@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 (< >>>>> dcgome...@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. >>>>>> _______________________________________________ >>>>>> R-help-es mailing list >>>>>> R-help-es@r-project.org >>>>>> https://stat.ethz.ch/mailman/listinfo/r-help-es >>>>>> >>>>> >>>>> >>>>> -- >>>>> Saludos, >>>>> Carlos Ortega >>>>> www.qualityexcellence.es >>>>> >>>> >>>> *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. >>>> >>> >>> >>> -- >>> Saludos, >>> Carlos Ortega >>> www.qualityexcellence.es >>> >> >> *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. >> > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es > -- Saludos, Carlos Ortega www.qualityexcellence.es
_______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es