Hola estimados miembros de la lista,

Tengo una inquietud.

Les cuento: tengo un conjunto de datos en un data.frame. Algunas de las
variables que están en él son del tipo factor. Estos factores,
naturalmente, tiene categorías: a veces demasiadas categorías y muchas de
ellas con 1 individuo contemplando el data.frame más de 1 millón de
individuos.

Estas pequeñas cantidades creo que me están estropeando parte de los
análisis que estoy realizando y he decidido realizar todo solo con aquellos
factores cuyas categorías sean al menos un valor k (donde k con toda
seguridad no bajará de al menos 1000, pero esto no lo he decidido :) ).

La decisión muy bien, pero al hacer la selección, por ejemplo con sqldf, me
quedan aún las categorías que no estoy contemplando con un conteo en 0.
Ejemplo:

# datos de ejemplo:
> data.frame(letras=c(rep("a",2),rep("b",2),rep("c",2)),otra=runif(6))
  letras       otra
1      a 0.04860339
2      a 0.79562345
3      b 0.42864128
4      b 0.10950613
5      c 0.69018354
6      c 0.15778063
> ej<-data.frame(letras=c(rep("a",2),rep("b",2),rep("c",2)),otra=runif(6))

# selecciono un subconjunto de los anteriores
> sqldf("select * from ej where letras='a'")
  letras      otra
1      a 0.7142700
2      a 0.7124181
> res<-sqldf("select * from ej where letras='a'")

# he aquí el resultado:
> table(res$letras)

a b c
2 0 0

Esos dos últimos ceros son los que no estoy necesitando. También se
comporta igual si utilizo:

> table(ej[ej$letras=='a',]$letras)

a b c
2 0 0

dos ceros que no necesito. Si utilizo

> table(factor(ej[ej$letras=='a',]$letras))

a
2

funciona como estoy interesado pero en mi data.frame original tengo más de
100 variables y no me figuro una manera poco redundante para solucionarlo.

¿Alguien tendrá idea de cómo puedo deshacerme de las categorías que no
tengan conteos en un data.frame?

Muchas gracias.

-- 
«But Gwindor answered: 'The doom lies in yourself, not in your name.'»

JRR Tolkien

	[[alternative HTML version deleted]]

