OK. Bien. El mié, 29 mar 2023 a las 22:20, David Camilo Gomez Medina (< dcgome...@unal.edu.co>) escribió:
> Listo, gracias. > > On Wed, 29 Mar 2023 at 15:19, Carlos Ortega <c...@qualityexcellence.es> > wrote: > >> 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 >> > > *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
_______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es