Buenos dias Manuel,

Podrias utilizar lo siguiente:

# funcion percentiles
percen <- function(x) quantile(x, probs = c(.05,.10,.20,.5,.6,.8,.95))

as.data.frame(with(example, tapply(recall, list(EDUCATION, Age), percen)))
#                                                            45
                          85
# High 23.0, 23.0, 23.0, 23.0, 24.6, 27.0, 27.0 23.3, 24.6, 27.2, 35.0,
36.2, 38.6, 40.4
# LOW  13.8, 15.6, 19.2, 21.0, 27.4, 37.0, 37.0 18.0, 18.0, 18.0, 19.5,
20.4, 21.8, 22.7

Saludos,
      Jorge Ivan Velez


2010/3/17 <>

>
> Hola, perdón por el error en el fichero que os dejé. Ya lo he arreglado y
> os lo adjunto de nuevo con el valor  "LOW" corregido.  Sigo teniendo el
> problema de obtener varias cuantilas para cada variable estratificada. Solo
> puedo conseguir una cuantila de la siguiente forma:
>
>
>
> > percen2 = function(x) {
> + quantile(x,probs = c(.10))
> + }
> > percen2(example$recall)
> 10%
>  18
> > aggregate(example$recall, list(example$EDUCATION,example$Age),percen2)
>  Group.1 Group.2    x
> 1    High      45 23.0
> 2     LOW      45 16.5
> 3    High      85 27.2
> 4     LOW      85 18.0
> >
>
> Sin embargo, me gustaría conseguir juntos varios valores de cuantilas.
> Alguna sugerencia?
>
> Saludos,
>
> M. Morales
>
>
>
>
>
>
>
> ----- Mensaje original -----
> De: Jorge Ivan Velez <jorgeivanvelez@gmail.com>
> Fecha: Martes, Marzo 16, 2010 11:28 pm
> Asunto:  Re: [R-es] aplicar función de cuantilas a un dataframe
> A: morales@us.es
> CC: r-help-es@r-project.org
>
>
> > Buenas tardes Manuel,
> >
> > Muchas gracias por el ejemplo!
> >
> > Lo que esta ocurriendo es que en una de las combinaciones EDUCATION -
> > Age no
> > tienes observaciones, por lo que no es posible calcular los cuantiles
> > de
> > recall en ese nivel. Por lo tanto obtienes:
> >
> > # lo que quieres calcular
> > with(example, aggregate(recall, list(EDUCATION, Age), quantile))
> > # Error in aggregate.data.frame(as.data.frame(x), ...) :
> > #  'FUN' must always return a scalar
> >
> > De la siguiente manera puedes calcular el numero de observaciones por
> > combinacion que menciono anteriormente:
> >
> > # numero de observaciones en cada combinacion
> > with(example, table(EDUCATION, Age))
> > #         Age
> > # EDUCATION 45 85
> > #     High  5  3
> > #     Low   1  0
> > #     LOW   4  4
> >
> > Cual es la diferencia entre "Low" y "LOW"?   Mi sugerencia seria
> > unificar el
> > nivel educativo a uno de los dos y luego ejecutar nuevamente el analisis.
> >
> > Espero sea de utilidad,
> >
> >                              Jorge Ivan Velez
> >
> >
> > 2010/3/16 <>
> >
> > > Hola R-adictos,
> > >
> > > me gustaría que alguien me ayudara a aplicar la función "quantile"
> (varios
> > > percentiles) a un marco de datos estratificado por algunas variables
> > > categóricas (ver fichero adjunto como ejemplo). La idea es obtener
> varios
> > > percentiles de varias variables (primeras columnas del fichero de
> datos),
> > > pero dividiendo el marco de datos en función de los valores de las
> variables
> > > categóricas (educación y edad, las dos últimas columnas del fichero
> > de
> > > datos).
> > >
> > > Lo he intentado con aggregate y este es el resultado:
> > >
> > > example= read.table("example.txt",header=T)
> > > aggregate(example$recall, list(example$EDUCATION,example$Age), mean)
> > > aggregate(example$recall, list(example$EDUCATION,example$Age),
> quantile)
> > >
> > > > aggregate(example$recall, list(example$EDUCATION,example$Age),
> quantile)
> > > Error en aggregate.data.frame(as.data.frame(x), ...) :
> > >  'FUN' must always return a scalar
> > >
> > > Tambien he intentado crear una función para aplicarla, pero este ha
> > sido el
> > > resultado:
> > >
> > > percen = function(x) {
> > > quantile(x,probs = c(.05,.10,.20,.5,.6,.8,.95))
> > > }
> > > percen(example$recall)
> > > aggregate(example$recall, list(example$EDUCATION,example$Age), percen)
> > >
> > > > aggregate(example$recall, list(example$EDUCATION,example$Age),
> percen)
> > > Error en aggregate.data.frame(as.data.frame(x), ...) :
> > >  'FUN' must always return a scalar
> > >
> > >
> > > Alguna sugerencia? Gracias anticipadas
> > >
> > > Manuel
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > _______________________________________________
> > > R-help-es mailing list
> > > R-help-es@r-project.org
> > >
> > >
> > >
>

	[[alternative HTML version deleted]]

