[R-es] Error al agrupar datos por una variable en data.table

Rodrigo López Correa rod99hare en gmail.com
Vie Sep 25 15:48:39 CEST 2015


Hola buenos días, estoy teniendo problemas cuando quiero agrupar los
registros de una tabla por una columna específica en data.table.



*Mi objetivo es agrupar todos los hijos que pertenecen a solo 2 padres
determinados.*



   - Por eso me traje todos sus hijos con subset desde una tabla.





algunos_padres<-data.table(subset(mydata, padres %in% c("0002480",
"0001878") ,

                          select=(c(individuo,padres)),key="individuo"))




   - Para chequear que me haya traído solamente esos padres, busqué si
   tenía el padre “0001458”:



algunos_padres[padres=="0001458",]




   - El resultado fue el esperado, no estaba en la tabla algunos_padres:


Empty data.table (0 rows) of 7 cols #correct no era esperado




   - Sin embargo, acá viene mi problema, cuando le pido contabilizar el
   número de hijos obtenidos por  cada uno de esos 2 padres, el resultado
   trajo también animales que no deberían estar. Por ejemplo, el padre 0001458.



total_hijos<-algunos_padres[, as.data.table(table(padres))]

head (total_hijos)



padres         N

1: 0001458 0

2: 0001512 0

3: 0001518 0

4: 0001519 0

….




   -     Intenté hacerlo de otra manera y obtuve igual resultado:



               xtabs(~padres,data=algunos_padres)



               padres

               0001458 0001512 0001518 0001519 0001683 0001795 0001803
0001878

               0                   0            0           0
         0            0           0               77 ….






   - En definitiva, intenté hacerlo de varias maneras y siempre con el
   mismo resultado, me trae en la estadística  padres que no formaron parte de
   mi subset inicial en algunos_padres, por más que después aparezcan con 0
   hijo en el resultado.






   - Por último probé:



algunos_padres[,count := uniqueN(individuo), by=padres]



pero aquí no me trajo como quiero en 2 lineas, el total de hijos de cada
uno de esos 2 padres. Quizás es redundante poner uniqueN, ya que el campo
individuo tiene registros únicos.







¿Me podrían ayudar? Muchas gracias!



Rodrigo.

	[[alternative HTML version deleted]]



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