Skip to content
Prev 8930 / 15379 Next

[R-es] comportamiento de data.table al hacer calculos por grupos

Estimada comunidad tengo un problema del que no encuentro datos que me 
ayuden mucho en la web.

Estoy haciendo calculos por grupos con data,table. Tengo un archivo 
(zp.res) con tres columnas que clasifican los datos (sol, con, dia)  y 
una columna de datos numericos (media), de la siguiente forma:

      sol con dia media
   1: con   0   1 -22.6
   2: con   0   1 -36.6
   3: con   0   1 -35.6

y quiero calcular el promedio de "media" (la col 4) agrupando con las 
variables sol,con,dia. Lo hago de la siguiente forma:

med <- zp.res[, mean(media), by="sol,dia,con"]

cuando reviso "med" esta todo bien, se han calculado las medias y el 
objeto tiene solo las filas que corresponden a los promedios con sus 
respectivas columnas sol,con,dia que los identifican. Pero como notaran 
por el codigo, la columna con el resultado no tiene un nombre asi es que 
R la bautiza como V1. Quise ponele un nombre y agregue este al codigo de 
la siguiente forma:

med <- zp.res[, "ave":=mean(media), by="sol,dia,con"]

el problema es que ahora el objeto med tiene el mismo numero de filas 
que zp.res y repite el promedio para cada dato dentro del grupo obtenido 
con by="sol,dia,con". Esto no me sirve pues tengo que graficar los 
promedios ...

mmmmm puede que mi explicacion sea algo confusa, espero que me entiendan.

Encontre que luego puedo renombrar la columna, pero no lo quiero hacer, 
pues pienso que deberia ser estandar poder ponerle el nombre y que se 
construya bien el objeto con los promedios inmediatamente. Ademas el 
promedio es solo uno de los calculos que debo hacer y los otros tambien 
quedan con el nombre V1 en la mismo data.table.

Alguna idea de como hacerlo ?

Adjunto archivo con datos.

Saludos y gracias, eric.