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
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>

	[[alternative HTML version deleted]]

