Hola a todos, Estoy tratando de averiguar la media y la desviación estandar de mis datos y aunque supongo de no debe ser muy dificil, estoy empezando con R y ando perdido. Mi tabla tiene la siguiente estructura Talla Estrato1 Estrato2 Estrato3........... Estrato8 7 3 5 7 0 8 8 9 2 1 9 2 35 43 7 10 62 111 57 5 . . . . 72 0 0 1 0 En la columna de la talla, tengo la longitud de los ejemplares, y en las columnas de los Estratos, tengo el número de veces que se ha medido un ejemplar de esa talla. Es decir, p.ej., en el Estrato3 de han medido 43 ejemplares de 9 cms. Si dispusiera de los datos de otra manera no tendría problema en calcular la media y la desviación estandar, pero de ésta forma no doy con ello. Después de buscar he visto que lo podría hacer usando la función rep() y así tener los datos de una forma que sería fácil calcular los estadísticos que necesito. El problema es que mi distribución de tallas va desde 7 hasta 72 y tengo 8 estratos, con un total de 9500 datos, con lo que iba a ser bastante laborioso. Y seguro que hay una forma mucho más rápida y elegante. Por lo que he estado viendo, creo podría hacerse con for (), pero estoy todavía un poco verde y no veo la forma de hacerlo (si se puede, claro). A ver si alguien puede echarme una mano. Un saludo y gracias Juan Carlos *************************************** Si las cuerdas del trapecio las corté fue para subir y atarlas y ver a la luna otra vez. Y volverlas a cortar una y mil veces y boquear como los peces cuando les toca perder. [[alternative HTML version deleted]]
Estimado Juan Carlos Si usted está comenzando creo que es bueno darle algunas pistas y no la respuesta, la cuál casi encontró, en primer lugar: ?rep x <- 10 rep(5, x) Creo que yo también usaría ese comando Luego podría leer lo siguiente, seguramente terminará hallando usted mismo la respuesta ?function ?lapply ?apply ?tapply Javier Marcuzzi -----Mensaje original----- From: JC A Sent: Saturday, July 21, 2012 6:53 AM To: r-help-es en r-project.org Subject: [R-es] Media Hola a todos, Estoy tratando de averiguar la media y la desviación estandar de mis datos y aunque supongo de no debe ser muy dificil, estoy empezando con R y ando perdido. Mi tabla tiene la siguiente estructura Talla Estrato1 Estrato2 Estrato3........... Estrato8 7 3 5 7 0 8 8 9 2 1 9 2 35 43 7 10 62 111 57 5 . . . . 72 0 0 1 0 En la columna de la talla, tengo la longitud de los ejemplares, y en las columnas de los Estratos, tengo el número de veces que se ha medido un ejemplar de esa talla. Es decir, p.ej., en el Estrato3 de han medido 43 ejemplares de 9 cms. Si dispusiera de los datos de otra manera no tendría problema en calcular la media y la desviación estandar, pero de ésta forma no doy con ello. Después de buscar he visto que lo podría hacer usando la función rep() y así tener los datos de una forma que sería fácil calcular los estadísticos que necesito. El problema es que mi distribución de tallas va desde 7 hasta 72 y tengo 8 estratos, con un total de 9500 datos, con lo que iba a ser bastante laborioso. Y seguro que hay una forma mucho más rápida y elegante. Por lo que he estado viendo, creo podría hacerse con for (), pero estoy todavía un poco verde y no veo la forma de hacerlo (si se puede, claro). A ver si alguien puede echarme una mano. Un saludo y gracias Juan Carlos *************************************** Si las cuerdas del trapecio las corté fue para subir y atarlas y ver a la luna otra vez. Y volverlas a cortar una y mil veces y boquear como los peces cuando les toca perder. [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Hola, no entiendo exactamente lo que pides, si es obtener la media y desviación típicas de cada Estrato, sería del tipo mean(Estrato1), teniendo en cuenta que hayas hecho attach(tusdatos), por otro lado, generalmente los análisis van más allá de la mera descriptiva y se quiere averiguar si esas medias son o no significativamente distintas. Un saludo, Olmo. El Sat, 21 Jul 2012 11:53:40 +0200 JC A <j_arronte en hotmail.com> escribió:> > Hola a todos, > > Estoy tratando de averiguar la media y la desviación estandar de mis > datos y aunque supongo de no debe ser muy dificil, estoy empezando > con R y ando perdido. Mi tabla tiene la siguiente estructura > > Talla Estrato1 Estrato2 Estrato3........... Estrato8 > 7 3 5 > 7 0 8 8 > 9 2 1 9 > 2 35 43 7 > 10 62 111 57 > 5 . . > . > . > 72 0 0 > 1 0 > > > En la columna de la talla, tengo la longitud de los ejemplares, y en > las columnas de los Estratos, tengo el número de veces que se ha > medido un ejemplar de esa talla. Es decir, p.ej., en el Estrato3 de > han medido 43 ejemplares de 9 cms. > > Si dispusiera de los datos de otra manera no tendría problema en > calcular la media y la desviación estandar, pero de ésta forma no doy > con ello. Después de buscar he visto que lo podría hacer usando la > función rep() y así tener los datos de una forma que sería fácil > calcular los estadísticos que necesito. El problema es que mi > distribución de tallas va desde 7 hasta 72 y tengo 8 estratos, con un > total de 9500 datos, con lo que iba a ser bastante laborioso. Y > seguro que hay una forma mucho más rápida y elegante. > > Por lo que he estado viendo, creo podría hacerse con for (), pero > estoy todavía un poco verde y no veo la forma de hacerlo (si se > puede, claro). > > A ver si alguien puede echarme una mano. > > Un saludo y gracias > > Juan Carlos > > > *************************************** > Si las cuerdas del trapecio las corté > fue para subir y atarlas > y ver a la luna otra vez. > Y volverlas a cortar una y mil veces > y boquear como los peces cuando les toca perder. > > > > [[alternative HTML version deleted]] >
Hola, Lo que buscas es calcular la media de cada estrato pero ponderada por la talla. La función en R para hacer esto es "weighted.mean()". Mira la ayuda de esta función, aunque es muy sencilla de aplicar. Para el "Estrato_1" sería (suponiendo que tu tabla la tienes cargada en un data.frame llamado "df" media_1 <- weighted.mean(df$Estrato_1, df$Talla) Saludos, Carlos Ortega www.qualityexcellence.es El 21 de julio de 2012 11:53, JC A <j_arronte@hotmail.com> escribió:> > Hola a todos, > > Estoy tratando de averiguar la media y la desviación estandar de mis datos > y aunque supongo de no debe ser muy dificil, estoy empezando con R y ando > perdido. Mi tabla tiene la siguiente estructura > > Talla Estrato1 Estrato2 Estrato3........... Estrato8 > 7 3 5 7 0 > 8 8 9 2 1 > 9 2 35 43 7 > 10 62 111 57 5 > . > . > . > . > 72 0 0 1 0 > > > En la columna de la talla, tengo la longitud de los ejemplares, y en las > columnas de los Estratos, tengo el número de veces que se ha medido un > ejemplar de esa talla. Es decir, p.ej., en el Estrato3 de han medido 43 > ejemplares de 9 cms. > > Si dispusiera de los datos de otra manera no tendría problema en calcular > la media y la desviación estandar, pero de ésta forma no doy con ello. > Después de buscar he visto que lo podría hacer usando la función rep() y > así tener los datos de una forma que sería fácil calcular los estadísticos > que necesito. El problema es que mi distribución de tallas va desde 7 hasta > 72 y tengo 8 estratos, con un total de 9500 datos, con lo que iba a ser > bastante laborioso. Y seguro que hay una forma mucho más rápida y elegante. > > Por lo que he estado viendo, creo podría hacerse con for (), pero estoy > todavía un poco verde y no veo la forma de hacerlo (si se puede, claro). > > A ver si alguien puede echarme una mano. > > Un saludo y gracias > > Juan Carlos > > > *************************************** > Si las cuerdas del trapecio las corté > fue para subir y atarlas > y ver a la luna otra vez. > Y volverlas a cortar una y mil veces > y boquear como los peces cuando les toca perder. > > > > [[alternative HTML version deleted]] > > > _______________________________________________ > 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 [[alternative HTML version deleted]]
Hola Juan Carlos, Intenta lo siguiente: # tus datos x <- structure(list(Talla = 7:10, Estrato1 = c(3L, 8L, 2L, 62L), Estrato2 c(5L, 9L, 35L, 111L), Estrato3 = c(7L, 2L, 43L, 57L)), .Names = c("Talla", "Estrato1", "Estrato2", "Estrato3"), class = "data.frame", row.names c(NA, -4L)) # procesamiento r <- apply(x, 1, function(l) rep(l[-1], each = l[1])) r <- do.call(rbind, lapply(r, as.data.frame.table)) colnames(r) <- c(''Estrato'', ''Talla'') # media, varianza y cuartiles with(r, tapply(Talla, Estrato, mean)) with(r, tapply(Talla, Estrato, var)) with(r, tapply(Talla, Estrato, quantile)) # boxplot boxplot(Talla ~ Estrato, data = r) Un saludo, Jorge.- 2012/7/21 JC A <>> > Hola a todos, > > Estoy tratando de averiguar la media y la desviación estandar de mis datos > y aunque supongo de no debe ser muy dificil, estoy empezando con R y ando > perdido. Mi tabla tiene la siguiente estructura > > Talla Estrato1 Estrato2 Estrato3........... Estrato8 > 7 3 5 7 0 > 8 8 9 2 1 > 9 2 35 43 7 > 10 62 111 57 5 > . > . > . > . > 72 0 0 1 0 > > > En la columna de la talla, tengo la longitud de los ejemplares, y en las > columnas de los Estratos, tengo el número de veces que se ha medido un > ejemplar de esa talla. Es decir, p.ej., en el Estrato3 de han medido 43 > ejemplares de 9 cms. > > Si dispusiera de los datos de otra manera no tendría problema en calcular > la media y la desviación estandar, pero de ésta forma no doy con ello. > Después de buscar he visto que lo podría hacer usando la función rep() y > así tener los datos de una forma que sería fácil calcular los estadísticos > que necesito. El problema es que mi distribución de tallas va desde 7 hasta > 72 y tengo 8 estratos, con un total de 9500 datos, con lo que iba a ser > bastante laborioso. Y seguro que hay una forma mucho más rápida y elegante. > > Por lo que he estado viendo, creo podría hacerse con for (), pero estoy > todavía un poco verde y no veo la forma de hacerlo (si se puede, claro). > > A ver si alguien puede echarme una mano. > > Un saludo y gracias > > Juan Carlos > > > *************************************** > Si las cuerdas del trapecio las corté > fue para subir y atarlas > y ver a la luna otra vez. > Y volverlas a cortar una y mil veces > y boquear como los peces cuando les toca perder. > > > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >[[alternative HTML version deleted]]