[R-es] como pasar de data.frame -> cast -> data.frame
Víctor Granda García
victorgrandagarcia en gmail.com
Mie Oct 29 08:24:09 CET 2014
Hola a todos.
Si no me equivoco, lo que haces con cast lo puedes hacer con el paquete
dplyr (http://cran.r-project.org/web/packages/dplyr/index.html), cuya
salida es ya un data.frame (o data.table según lo que quieras) y por tanto
graficarlo sería más sencillo. Además el autor del paquete es el mismo que
ggplot2 (Hadley Wickham).
En la viñeta del paquete (
http://cran.rstudio.com/web/packages/dplyr/vignettes/introduction.html)
explica muy bien como hacerlo.
Espero que te sirva.
Un saludo.
Víctor Granda García
Ph.D. Student
Dpto. BOS, Universidad de Oviedo
El 28 de octubre de 2014, 23:22, eric <ericconchamunoz en gmail.com> escribió:
> Gracias Olivier por tu sugerencia ... uso "cast" porque me permite hacer
> facilmente algunas operaciones con los datos antes de graficarlos, por
> ejemplo, calcular el promedio de los datos que cumplan un conjunto de
> condiciones. Por ejemplo, graficar el promedio de la variable "are" que
> cumplan:
>
> sol=="dol" , dia==1, con==5
>
> y asi ... tambien lo hacia de otra forma q es mucho mas complicada,
> generando un archivo con las condiciones que quiero que se cumplan y
> filtrando el archivo de datos de acuerdo a esas condiciones y aplicar
> las operaciones que necesito a los datos que quedan. Pero crear ese
> archivo-filtro no es tan trivial, por eso que estaba contento con
> "cast", pero ahora tengo el problema de que para graficar necesito
> transformar la tabla que me entrega "cast" en un data.frame adecuado.
> Seguro debe haber otras formas y por eso preguntaba si no existia ya una
> funcion que me permitiera crear el df.
>
> Voy a seguir mirando en CRAN a ver que encuentro.
>
> Saludos,
>
> Eric.
>
>
>
>
>
>
>
>
> On 28/10/14 05:27, Olivier Nuñez wrote:
> > No creo que haga falta utilizar cast.
> > Prueba lo siguiente:
> >
> > require(ggplot2)
> > ggplot(subset(dataEnd.dia %in% 1:5), aes(con)) + geom_bar() +
> facet_wrap(~sol)
> >
> > Un saludo. Olivier
> >
> >
> >
> > ----- Mensaje original -----
> > De: "eric" <ericconchamunoz en gmail.com>
> > Para: "Carlos Ortega" <cof en qualityexcellence.es>
> > CC: "Lista R" <r-help-es en r-project.org>
> > Enviados: Lunes, 27 de Octubre 2014 23:30:16
> > Asunto: Re: [R-es] como pasar de data.frame -> cast -> data.frame
> >
> > Hola Carlos, quiero graficar el valor de cada celda, por ejemplo, 10 (en
> > 1,1) clasificado de acuerdo a las etiquetas de encabezado de fila y
> columna.
> >
> > Me explico:
> >
> > Necesito un panel para cada etiqueta del titulo de la fila (con, dec ...
> > ) y en el eje X de cada panel va la concentracion, que son los numeros
> > del 0 al 5 en el encabezado de cada columna. El eje Y de cada panel es
> > un porcentaje. Es el valor de cada celda en la tabla y que se calculo
> > con la funcion "cast". Dentro de cada panel los puntos se deben agrupar
> > por dia, dato que tambien esta en el encabezado de cada columna.
> >
> > Por esto es que pienso que podria existir una forma de utilizar la
> > informacion que se obtiene con "cast" para hacer un grafico del tipo
> > descrito, de una forma mas inteligente que reordenando la tabla en un
> > data.frame manualmente.
> >
> > Eso es.
> >
> > Espero haberme explicado adecuadamente.
> >
> > saludos y gracias,
> >
> > Eric.
> >
> >
> >
> >
> > On 27/10/14 17:00, Carlos Ortega wrote:
> >> Hola,
> >>
> >> ¿Pero qué quieres graficar?....
> >> Creo que me haría una mejor idea si me dices qué quieres pintar sobre el
> >> conjunto original...
> >>
> >> Gracias,
> >> Carlos Ortega
> >> www.qualityexcellence.es <http://www.qualityexcellence.es>
> >>
> >> El 27 de octubre de 2014, 20:54, eric <ericconchamunoz en gmail.com
> >> <mailto:ericconchamunoz en gmail.com>> escribió:
> >>
> >> Fabulosa comunidad, tengo el siguiente problema:
> >>
> >> 1. Tengo un data.frame no muy grande, de 575 filas x 8 columnas. En
> este
> >> df, las primeras 7 columnas identifican el dato que va en la
> columna 8.
> >> A las primeras 7 col se las podria considerar como datos
> categoricos y
> >> la columna 8 es un dato numerico. El df luce algo asi:
> >>
> >> sol con dia rep nca nin iso are
> >> 1 con 0 1 1 16 0 s 0.3866520976
> >> 2 con 0 1 1 16 1 c 0.0008842527
> >> 3 con 0 1 1 18 0 s 0.2409465396
> >> 4 con 0 1 1 18 1 c 0.0021092822
> >> 5 con 0 2 1 16 0 s 0.6005446999
> >> 6 con 0 2 1 18 0 s 0.3394979487
> >>
> >>
> >>
> >> 2. A partir del df y usando la funcion "cast" obtengo unas tablas
> como
> >> las que siguen:
> >>
> >> cast(datEnd[datEnd$dia%in%c(1,5),], sol ~ dia + con,
> >> fun.aggregate=length)
> >>
> >> sol 1_0 1_1 1_2 1_3 1_4 1_5 5_0 5_1 5_2 5_3 5_4 5_5
> >> 1 con 10 0 0 0 0 0 11 0 0 0 0 0
> >> 2 dec 0 6 6 6 8 6 0 9 11 13 14 17
> >> 3 dol 0 8 6 10 9 10 0 17 16 17 19 19
> >> 4 lim 0 10 6 7 6 16 0 11 9 13 10 9
> >>
> >> en la primera fila de la tabla, que son encabezados de la columna,
> el
> >> primer numero indica un dia (1 y 5) y el segundo numero indica una
> >> concentracion, desde 0 a 5). Los nombres en la primera columna (con,
> >> dec...) son identificadores tambien.
> >>
> >> 3. ahora viene mi problema: de esas tablas obtenidas con "cast"
> tengo
> >> bastantes y necesito graficar los datos que ahi aparecen. Creo que
> no
> >> podria utilizar directamente esa tabla para obtener un grafico en R
> (o
> >> si ? no lo se) ... entonces mi pregunta es
> >>
> >> Existe alguna funcion, algo asi como "stack" y "unstack" para
> >> transformar esa tabla de doble (o triple) entrada que me entrega
> "cast"
> >> en un data.frame que me permita graficar a partir de el ?
> >>
> >> habia comenzado a hacerlo a mano, pero por la cantidad de tablas que
> >> tengo es impracticable.
> >>
> >> Espero haber explicado correctamente mi problema. Toda sugerencia
> sera
> >> muy apreciada
> >>
> >> Slds cordiales,
> >>
> >> Eric Concha M.
> >>
> >>
> >> pd. adjunto los datos x si quieren jugar con ellos
> >>
> >>
> >>
> >> --
> >> Forest Engineer
> >> Master in Environmental and Natural Resource Economics
> >> Ph.D. student in Sciences of Natural Resources at La Frontera
> University
> >> Member in AguaDeTemu2030, citizen movement for Temuco with green
> city
> >> standards for living
> >>
> >> Nota: Las tildes se han omitido para asegurar compatibilidad con
> algunos
> >> lectores de correo.
> >>
> >> _______________________________________________
> >> R-help-es mailing list
> >> R-help-es en r-project.org <mailto:R-help-es en r-project.org>
> >> https://stat.ethz.ch/mailman/listinfo/r-help-es
> >>
> >>
> >>
> >>
> >> --
> >> Saludos,
> >> Carlos Ortega
> >> www.qualityexcellence.es <http://www.qualityexcellence.es>
> >
>
> --
> Forest Engineer
> Master in Environmental and Natural Resource Economics
> Ph.D. student in Sciences of Natural Resources at La Frontera University
> Member in AguaDeTemu2030, citizen movement for Temuco with green city
> standards for living
>
> Nota: Las tildes se han omitido para asegurar compatibilidad con algunos
> lectores de correo.
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
[[alternative HTML version deleted]]
Más información sobre la lista de distribución R-help-es