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]]