Hola, estoy tratando de hacer un boxplot para compara diferentes comportamientos. Tengo un set de datos con 17 columnas, quiero crear un boxplot considerando 3 de ellas. He buscado en foros y siempre responden esta pregunta con subconjuntos de datos dentro de una misma columna, y no he logrado realizarlo. Este es un ejemplo de mis datos: ID: id animal EP: episodio AA: acostado y alerta AD: acostado descansando B: sentado; C: de pie, D; locomición, F: exploración; GS: juego social; GI: juego individual Z: zona 1,2,3,4 ID Ep AA AD B C D F GS GI Z1 Z2 Z3 Z4 1 1 8 0 0 0 4 5 0 0 8 1 0 0 1 2 5 0 0 2 5 3 0 0 9 0 0 0 1 3 0 0 0 0 12 0 11 0 1 2 0 1 1 4 2 0 0 2 4 0 NA 8 8 0 0 0 1 5 3 0 1 0 8 0 0 7 1 3 0 4 1 6 5 0 0 5 2 0 0 10 0 11 0 0 2 1 0 0 12 0 0 1 0 0 0 0 12 0 2 2 8 0 0 0 3 1 0 0 0 0 0 9 2 3 0 0 1 1 10 1 0 0 1 0 1 0 2 4 0 0 0 6 5 0 NA 0 4 1 2 0 2 5 1 0 7 0 4 0 0 0 0 2 0 6 2 6 4 0 2 1 5 0 0 0 2 0 2 4 3 1 2 6 0 4 0 2 0 0 0 0 12 0 3 2 10 1 0 0 0 0 0 0 0 0 11 0 3 3 0 0 0 7 5 3 0 0 4 0 0 0 3 4 0 0 0 1 5 1 NA 0 5 0 0 0 3 5 2 0 0 5 5 0 0 0 0 3 0 2 3 6 4 2 0 4 2 0 0 0 4 6 0 0 necesito crear un boxplot donde x siempre será Ep (episodios), e Y considere por ejemplo GS y GI, para poder comparar dichos comportamientos. De preferencia, me gustaría hacerlo simplemente con boxplot(), pero estoy abierta a intentarlo con ggplot de igual forma. Muchas gracias, saludos -- *Lorena Saavedra A.**Ing. Recursos Naturales Renovables* *+56 9 9880 2972* [[alternative HTML version deleted]]
Hola Lorena: bueno, tal y como planteas la duda, a mí me sale automáticamente esto que te mostraré a continuación: library(dplyr) library(purrr) library(ggplot2) dLSaa %>% ggplot(aes(factor(Ep), GI)) + geom_boxplot() map_dbl(.x = dLSaa$GS, .f = function(x) {sum(is.na(x))}) dLSaa %>% ggplot(aes(factor(Ep), GS)) + geom_boxplot() Sé que deseabas más bien la función boxplot(), pero es que con lo que más trabajo es con ggplot, y casi me he acostumbrado a pensar en ese modo. Hay varias cosas. La primera me sorprenden los datos con el resultado que sale, especialmente con el caso de la columna GS, por eso he puesto la función map_dbl con is.na, para resaltar los na, pero también por los valores que hallo en ella. La otra cuestión es que no estoy seguro de las columnas sean comparables. Pero bueno, todo esto huelga, porque lo importante es lo que estés haciendo y que sirva para algo este planteamiento que te facilito. Ojalá te haya ayudado. Un saludo cordial. PS. Te adjunto la tabla que he usado, la que pones tú, pero que yo tuve que leer y por si me hubiera equivocado para que las veas. El lun., 23 sept. 2019 a las 16:34, Lorena Saavedra Aracena (< l.saavedra.aracena en gmail.com>) escribió:> Hola, > estoy tratando de hacer un boxplot para compara diferentes comportamientos. > Tengo un set de datos con 17 columnas, quiero crear un boxplot > considerando 3 de ellas. He buscado en foros y siempre responden esta > pregunta con subconjuntos de datos dentro de una misma columna, y no he > logrado realizarlo. > > Este es un ejemplo de mis datos: > ID: id animal > EP: episodio > AA: acostado y alerta > AD: acostado descansando > B: sentado; C: de pie, D; locomición, F: exploración; GS: juego social; GI: > juego individual > Z: zona 1,2,3,4 > > ID Ep AA AD B C D F GS GI Z1 Z2 Z3 Z4 > 1 1 8 0 0 0 4 5 0 0 8 1 0 0 > 1 2 5 0 0 2 5 3 0 0 9 0 0 0 > 1 3 0 0 0 0 12 0 11 0 1 2 0 1 > 1 4 2 0 0 2 4 0 NA 8 8 0 0 0 > 1 5 3 0 1 0 8 0 0 7 1 3 0 4 > 1 6 5 0 0 5 2 0 0 10 0 11 0 0 > 2 1 0 0 12 0 0 1 0 0 0 0 12 0 > 2 2 8 0 0 0 3 1 0 0 0 0 0 9 > 2 3 0 0 1 1 10 1 0 0 1 0 1 0 > 2 4 0 0 0 6 5 0 NA 0 4 1 2 0 > 2 5 1 0 7 0 4 0 0 0 0 2 0 6 > 2 6 4 0 2 1 5 0 0 0 2 0 2 4 > 3 1 2 6 0 4 0 2 0 0 0 0 12 0 > 3 2 10 1 0 0 0 0 0 0 0 0 11 0 > 3 3 0 0 0 7 5 3 0 0 4 0 0 0 > 3 4 0 0 0 1 5 1 NA 0 5 0 0 0 > 3 5 2 0 0 5 5 0 0 0 0 3 0 2 > 3 6 4 2 0 4 2 0 0 0 4 6 0 0 > > necesito crear un boxplot donde x siempre será Ep (episodios), e Y > considere por ejemplo GS y GI, para poder comparar dichos comportamientos. > De preferencia, me gustaría hacerlo simplemente con boxplot(), pero estoy > abierta a intentarlo con ggplot de igual forma. > > Muchas gracias, saludos > > > -- > > *Lorena Saavedra A.**Ing. Recursos Naturales Renovables* > *+56 9 9880 2972* > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > stat.ethz.ch/mailman/listinfo/r-help-es >------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <stat.ethz.ch/pipermail/r-help-es/attachments/20190923/0a0d08ff/attachment.html> ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: dLSaa.RData Type: application/octet-stream Size: 3048 bytes Desc: no disponible URL: <stat.ethz.ch/pipermail/r-help-es/attachments/20190923/0a0d08ff/attachment.obj>
Hola Diego, gracias, soy bastante nueva en R y me cuesta seguirle el hilo a veces. Y no pasa nada, creo que terminaré usando ggplot de todas formas. Lo del NA es porque es un experimento, donde GS sólo puede ocurrir cuando hay una persona, y en algunos episodios el animal está solo. Tal vez podría ir un 0 para el caso del boxplot. Entonces quería comparar los comportamientos GS-GI. Seguí tu script y con esos pocos datos esto es lo que me arrojó para GS (es lo mismo que obtuviste?) [image: image.png] Quizás pregunté por la combinación más extraña porque GS casi nunca pasó. En realidad, me gustaría hacer lo mismo con AA y AD, Z1-Z2, y así con otros comportamientos... cómo para tener un boxplot similar a este pero con mis datos: [image: image.png] Sólo pegué un pequeño extracto porque son muchos datos. Pero sí, los datos que copiaste están perfectos. Gracias. El lun., 23 sept. 2019 a las 14:28, Diego Martín (<ako.sistemas en gmail.com>) escribió:> Hola Lorena: > > bueno, tal y como planteas la duda, a mí me sale > automáticamente esto que te mostraré a continuación: > > library(dplyr) > library(purrr) > library(ggplot2) > > dLSaa %>% > ggplot(aes(factor(Ep), GI)) + > geom_boxplot() > > map_dbl(.x = dLSaa$GS, .f = function(x) {sum(is.na(x))}) > > dLSaa %>% > ggplot(aes(factor(Ep), GS)) + > geom_boxplot() > > Sé que deseabas más bien la función boxplot(), pero es > que con lo que más trabajo es con ggplot, y casi me he acostumbrado a > pensar en ese modo. > > Hay varias cosas. La primera me sorprenden los datos con > el resultado que sale, especialmente con el caso de la columna GS, por eso > he puesto la función map_dbl con is.na, para resaltar los na, pero > también por los valores que hallo en ella. La otra cuestión es que no estoy > seguro de las columnas sean comparables. Pero bueno, todo esto huelga, > porque lo importante es lo que estés haciendo y que sirva para algo este > planteamiento que te facilito. Ojalá te haya ayudado. > > Un saludo cordial. > > PS. Te adjunto la tabla que he usado, la que pones tú, pero que yo tuve > que leer y por si me hubiera equivocado para que las veas. > > El lun., 23 sept. 2019 a las 16:34, Lorena Saavedra Aracena (< > l.saavedra.aracena en gmail.com>) escribió: > >> Hola, >> estoy tratando de hacer un boxplot para compara diferentes >> comportamientos. >> Tengo un set de datos con 17 columnas, quiero crear un boxplot >> considerando 3 de ellas. He buscado en foros y siempre responden esta >> pregunta con subconjuntos de datos dentro de una misma columna, y no he >> logrado realizarlo. >> >> Este es un ejemplo de mis datos: >> ID: id animal >> EP: episodio >> AA: acostado y alerta >> AD: acostado descansando >> B: sentado; C: de pie, D; locomición, F: exploración; GS: juego social; >> GI: >> juego individual >> Z: zona 1,2,3,4 >> >> ID Ep AA AD B C D F GS GI Z1 Z2 Z3 Z4 >> 1 1 8 0 0 0 4 5 0 0 8 1 0 0 >> 1 2 5 0 0 2 5 3 0 0 9 0 0 0 >> 1 3 0 0 0 0 12 0 11 0 1 2 0 1 >> 1 4 2 0 0 2 4 0 NA 8 8 0 0 0 >> 1 5 3 0 1 0 8 0 0 7 1 3 0 4 >> 1 6 5 0 0 5 2 0 0 10 0 11 0 0 >> 2 1 0 0 12 0 0 1 0 0 0 0 12 0 >> 2 2 8 0 0 0 3 1 0 0 0 0 0 9 >> 2 3 0 0 1 1 10 1 0 0 1 0 1 0 >> 2 4 0 0 0 6 5 0 NA 0 4 1 2 0 >> 2 5 1 0 7 0 4 0 0 0 0 2 0 6 >> 2 6 4 0 2 1 5 0 0 0 2 0 2 4 >> 3 1 2 6 0 4 0 2 0 0 0 0 12 0 >> 3 2 10 1 0 0 0 0 0 0 0 0 11 0 >> 3 3 0 0 0 7 5 3 0 0 4 0 0 0 >> 3 4 0 0 0 1 5 1 NA 0 5 0 0 0 >> 3 5 2 0 0 5 5 0 0 0 0 3 0 2 >> 3 6 4 2 0 4 2 0 0 0 4 6 0 0 >> >> necesito crear un boxplot donde x siempre será Ep (episodios), e Y >> considere por ejemplo GS y GI, para poder comparar dichos comportamientos. >> De preferencia, me gustaría hacerlo simplemente con boxplot(), pero estoy >> abierta a intentarlo con ggplot de igual forma. >> >> Muchas gracias, saludos >> >> >> -- >> >> *Lorena Saavedra A.**Ing. Recursos Naturales Renovables* >> *+56 9 9880 2972* >> >> [[alternative HTML version deleted]] >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org >> stat.ethz.ch/mailman/listinfo/r-help-es >> >-- *Lorena Saavedra A.**Ing. Recursos Naturales Renovables* *+56 9 9880 2972* ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <stat.ethz.ch/pipermail/r-help-es/attachments/20190923/38c4d1ac/attachment-0001.html> ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: image.png Type: image/png Size: 15603 bytes Desc: no disponible URL: <stat.ethz.ch/pipermail/r-help-es/attachments/20190923/38c4d1ac/attachment-0002.png> ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: image.png Type: image/png Size: 6488 bytes Desc: no disponible URL: <stat.ethz.ch/pipermail/r-help-es/attachments/20190923/38c4d1ac/attachment-0003.png>