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 1.485672 4: con 4 0 -26.17 1.159550 5: con 5 0 -27.94 2.563505 6: con 6 0 -28.68 3.142823 Saludos, Carlos Ortega www.qualityexcellence.es El 15 de mayo de 2015, 3:00, eric <[email protected]> escribió: > 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 14/05/15 19:28, Carlos Ortega wrote: > >> 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: dol 1 3 -32.95 >> >> * La solución que has empleado actualiza el valor de una columna. Y >> aunque te calcula el valor medio por grupo, lo adjunta al data.table >> original. >> * En cambio esta otra forma se calcula únicamente el valor medio por >> grupo. >> >> Y bueno si quieres ordenar para que salga el mismo orden que en sqldf, >> puedes hacer esto otro: >> >> > setorder(med, sol, dia) >> > head(med) >> sol dia con vmed >> 1: con 1 0 -29.37 >> 2: con 2 0 -31.65 >> 3: con 3 0 -28.25 >> 4: con 4 0 -26.17 >> 5: con 5 0 -27.94 >> 6: con 6 0 -28.68 >> >> >> Saludos, >> Carlos Ortega >> www.qualiytexcellence.es <http://www.qualiytexcellence.es> >> >> El 15 de mayo de 2015, 1:00, eric <[email protected] >> <mailto:[email protected]>> escribió: >> >> >> 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. >> >> >> >> >> >> -- >> Forest Engineer >> Master in Environmental and Natural Resource Economics >> Ph.D. student in Sciences of Natural Resources at La Frontera >> University >> Member in AguaDeTemu2030, citizen movement for Temuco with green >> city standards for living >> >> Nota: Las tildes se han omitido para asegurar compatibilidad con >> algunos lectores de correo. >> >> _______________________________________________ >> R-help-es mailing list >> [email protected] <mailto:[email protected]> >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> >> >> >> -- >> Saludos, >> Carlos Ortega >> www.qualityexcellence.es <http://www.qualityexcellence.es> >> > > -- > Forest Engineer > Master in Environmental and Natural Resource Economics > Ph.D. student in Sciences of Natural Resources at La Frontera University > Member in AguaDeTemu2030, citizen movement for Temuco with green city > standards for living > > Nota: Las tildes se han omitido para asegurar compatibilidad con algunos > lectores de correo. > -- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-help-es
