[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