Holap.
Reproduje tu ejemplo y ciertamente las filas se duplican innecesariamente.
No supe cómo corregir este comportamiento. Si no se pudiera arreglar esto,
por favor considera la librería sqldf y obtendrás el resultado correcto:
sqldf(select sol, dia, con, avg(media) as ave from dd group by
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
Hola,
Puedes crear las dos nuevas variables (media y desviación) y ordenar así:
med - datIn[, .(vmed=mean(media), vstd=sd(media)),
by=.(sol,dia,con)][order(sol,dia)]
head(med)
sol dia con vmed vstd
1: con 1 0 -29.37 4.415641
2: con 2 0 -31.65 3.178487
3: con 3 0 -28.25
Hola,
La forma de hacerlo con data.table es esta:
library(data.table)
datIn - fread(zp.res)
med - datIn[, .(vmed=mean(media)), by=.(sol,dia,con)]
head(med)
sol dia con vmed
1: con 1 0 -29.37
2: dec 1 1 -30.35
3: dec 1 3 -37.15
4: dec 1 5 -31.55
5: dol 1 1 -24.02
6:
Muchas gracias Freddy y Carlos ... estuve intentando con .() y con
list(), para calcular la media y el error estandar al mismo tiempo en
dos columnas, pero me arrojaba un error que no supe interpretar.
Ahora ya funciona como sugiere Carlos.
Muchas gracias de nuevo.
Saludos, Eric.
On