[R-es] como pasar de data.frame -> cast -> data.frame

eric ericconchamunoz en gmail.com
Mar Oct 28 23:22:07 CET 2014


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.



Más información sobre la lista de distribución R-help-es