Estimados miembros de la lista, Tengo un marco de datos: especie año sitio col1 A 2008 1 3 A 2008 2 0 A 2008 3 1 B 2008 1 2 B 2008 2 1 B 2008 3 0 A 2009 1 5 A 2009 2 6 A 2009 3 2 B 2009 1 4 B 2009 2 0 B 2009 3 3 y quisiera saber como puedo sumar la columna "col1" para cada especie, por sitio y para todos los años, es decir que la suma obtenga. especie sitio col1 A 1 8 A 2 6 A 3 3 B 1 6 B 2 1 B 3 3 Saludos, Manuel -- *Manuel Spínola, Ph.D.* Instituto Internacional en Conservación y Manejo de Vida Silvestre Universidad Nacional Apartado 1350-3000 Heredia COSTA RICA mspinola@una.ac.cr mspinola10@gmail.com Teléfono: (506) 2277-3598 Fax: (506) 2237-7036 Personal website: Lobito de río <https://sites.google.com/site/lobitoderio/> Institutional website: ICOMVIS <http://www.icomvis.una.ac.cr/> [[alternative HTML version deleted]]
Hola, Manuel: Existirán varias maneras, pero a mí me resulta muy cómodo utilizar consultas Sql: dfSuma<-sqldf("select especie, sitio, sum(col1) from df group by especie, sitio") siendo df tu data.frame. Obs.: Necesitas instalar el paquete sqldf Un saludo Eva --- El dom, 1/7/12, Manuel Spínola <mspinola10@gmail.com> escribió: De: Manuel Spínola <mspinola10@gmail.com> Asunto: [R-es] Suma de filas en marco de datos Para: "R" <r-help-es@r-project.org> Fecha: domingo, 1 de julio, 2012 15:06 Estimados miembros de la lista, Tengo un marco de datos: especie año sitio col1 A 2008 1 3 A 2008 2 0 A 2008 3 1 B 2008 1 2 B 2008 2 1 B 2008 3 0 A 2009 1 5 A 2009 2 6 A 2009 3 2 B 2009 1 4 B 2009 2 0 B 2009 3 3 y quisiera saber como puedo sumar la columna "col1" para cada especie, por sitio y para todos los años, es decir que la suma obtenga. especie sitio col1 A 1 8 A 2 6 A 3 3 B 1 6 B 2 1 B 3 3 Saludos, Manuel -- *Manuel Spínola, Ph.D.* Instituto Internacional en Conservación y Manejo de Vida Silvestre Universidad Nacional Apartado 1350-3000 Heredia COSTA RICA mspinola@una.ac.cr mspinola10@gmail.com Teléfono: (506) 2277-3598 Fax: (506) 2237-7036 Personal website: Lobito de río <https://sites.google.com/site/lobitoderio/> Institutional website: ICOMVIS <http://www.icomvis.una.ac.cr/> [[alternative HTML version deleted]] -----Adjunto en línea a continuación----- _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]]
?aggregate ?ave ?tapply Solo por mencionar algunos. Podrias tambien explorar el paquete plyr. Sent from my phone. Please excuse my brevity. On Jul 1, 2012, at 9:08 AM, "Manuel Spínola" <> wrote:> Estimados miembros de la lista, > > Tengo un marco de datos: > > especie a?o sitio col1 > > A 2008 1 3 > A 2008 2 0 > A 2008 3 1 > B 2008 1 2 > B 2008 2 1 > B 2008 3 0 > A 2009 1 5 > A 2009 2 6 > A 2009 3 2 > B 2009 1 4 > B 2009 2 0 > B 2009 3 3 > > y quisiera saber como puedo sumar la columna "col1" para cada especie, por > sitio y para todos los a?os, es decir que la suma obtenga. > > especie sitio col1 > A 1 8 > A 2 6 > A 3 3 > B 1 6 > B 2 1 > B 3 3 > > Saludos, > > Manuel > > -- > *Manuel Sp?nola, Ph.D.* > Instituto Internacional en Conservaci?n y Manejo de Vida Silvestre > Universidad Nacional > Apartado 1350-3000 > Heredia > COSTA RICA > mspinola en una.ac.cr > mspinola10 en gmail.com > Tel?fono: (506) 2277-3598 > Fax: (506) 2237-7036 > Personal website: Lobito de r?o <https://sites.google.com/site/lobitoderio/> > Institutional website: ICOMVIS <http://www.icomvis.una.ac.cr/> > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es
Muchas gracias Eva y Jorge, Siguiendo el consejo de Eva, el cual me funcionó, ¿qué tal si tengo más de un columna (col1, col2, col3, etc)? intenté algunas cosas como sum(c(col1, col2, col3) sum(df[, 3:22]) # son las columnas 3 a 22 Saludos, Manuel El 1 de julio de 2012 08:11, Eva Prieto Castro <evapcastro@yahoo.es>escribió:> Hola, Manuel: > > Existirán varias maneras, pero a mí me resulta muy cómodo utilizar > consultas Sql: > > *dfSuma<-sqldf("select especie, sitio, sum(col1) from df group by > especie, sitio") > * > siendo *df *tu data.frame. > > Obs.: Necesitas instalar el paquete sqldf > > Un saludo > Eva > > --- El *dom, 1/7/12, Manuel Spínola <mspinola10@gmail.com>* escribió: > > > De: Manuel Spínola <mspinola10@gmail.com> > Asunto: [R-es] Suma de filas en marco de datos > Para: "R" <r-help-es@r-project.org> > Fecha: domingo, 1 de julio, 2012 15:06 > > Estimados miembros de la lista, > > Tengo un marco de datos: > > especie año sitio col1 > > A 2008 1 3 > A 2008 2 0 > A 2008 3 1 > B 2008 1 2 > B 2008 2 1 > B 2008 3 0 > A 2009 1 5 > A 2009 2 6 > A 2009 3 2 > B 2009 1 4 > B 2009 2 0 > B 2009 3 3 > > y quisiera saber como puedo sumar la columna "col1" para cada especie, por > sitio y para todos los años, es decir que la suma obtenga. > > especie sitio col1 > A 1 8 > A 2 6 > A 3 3 > B 1 6 > B 2 1 > B 3 3 > > Saludos, > > Manuel > > -- > *Manuel Spínola, Ph.D.* > > Instituto Internacional en Conservación y Manejo de Vida Silvestre > Universidad Nacional > Apartado 1350-3000 > Heredia > COSTA RICA > mspinola@una.ac.cr<http://es.mc296.mail.yahoo.com/mc/compose?to=mspinola@una.ac.cr> > mspinola10@gmail.com<http://es.mc296.mail.yahoo.com/mc/compose?to=mspinola10@gmail.com> > Teléfono: (506) 2277-3598 > Fax: (506) 2237-7036 > Personal website: Lobito de río < > https://sites.google.com/site/lobitoderio/> > Institutional website: ICOMVIS <http://www.icomvis.una.ac.cr/> > > [[alternative HTML version deleted]] > > > -----Adjunto en línea a continuación----- > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org<http://es.mc296.mail.yahoo.com/mc/compose?to=R-help-es@r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- *Manuel Spínola, Ph.D.* Instituto Internacional en Conservación y Manejo de Vida Silvestre Universidad Nacional Apartado 1350-3000 Heredia COSTA RICA mspinola@una.ac.cr mspinola10@gmail.com Teléfono: (506) 2277-3598 Fax: (506) 2237-7036 Personal website: Lobito de río <https://sites.google.com/site/lobitoderio/> Institutional website: ICOMVIS <http://www.icomvis.una.ac.cr/> [[alternative HTML version deleted]]
Hola, ¿qué tal? Si tus columnas son m y n, puedes probar con aggregate( cbind(n, m) ~ especie + año, datos, sum ) Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 1 de julio de 2012 17:37, Manuel Spínola <mspinola10 en gmail.com> escribió:> Muchas gracias Eva y Jorge, > > Siguiendo el consejo de Eva, el cual me funcionó, ¿qué tal si tengo más de > un columna (col1, col2, col3, etc)? intenté algunas cosas como > > sum(c(col1, col2, col3) > > sum(df[, 3:22]) # son las columnas 3 a 22 > > Saludos, > > Manuel > > El 1 de julio de 2012 08:11, Eva Prieto Castro <evapcastro en yahoo.es>escribió: > >> Hola, Manuel: >> >> Existirán varias maneras, pero a mí me resulta muy cómodo utilizar >> consultas Sql: >> >> *dfSuma<-sqldf("select especie, sitio, sum(col1) from df group by >> especie, sitio") >> * >> siendo *df *tu data.frame. >> >> Obs.: Necesitas instalar el paquete sqldf >> >> Un saludo >> Eva >> >> --- El *dom, 1/7/12, Manuel Spínola <mspinola10 en gmail.com>* escribió: >> >> >> De: Manuel Spínola <mspinola10 en gmail.com> >> Asunto: [R-es] Suma de filas en marco de datos >> Para: "R" <r-help-es en r-project.org> >> Fecha: domingo, 1 de julio, 2012 15:06 >> >> Estimados miembros de la lista, >> >> Tengo un marco de datos: >> >> especie año sitio col1 >> >> A 2008 1 3 >> A 2008 2 0 >> A 2008 3 1 >> B 2008 1 2 >> B 2008 2 1 >> B 2008 3 0 >> A 2009 1 5 >> A 2009 2 6 >> A 2009 3 2 >> B 2009 1 4 >> B 2009 2 0 >> B 2009 3 3 >> >> y quisiera saber como puedo sumar la columna "col1" para cada especie, por >> sitio y para todos los años, es decir que la suma obtenga. >> >> especie sitio col1 >> A 1 8 >> A 2 6 >> A 3 3 >> B 1 6 >> B 2 1 >> B 3 3 >> >> Saludos, >> >> Manuel >> >> -- >> *Manuel Spínola, Ph.D.* >> >> Instituto Internacional en Conservación y Manejo de Vida Silvestre >> Universidad Nacional >> Apartado 1350-3000 >> Heredia >> COSTA RICA >> mspinola en una.ac.cr<http://es.mc296.mail.yahoo.com/mc/compose?to=mspinola en una.ac.cr> >> mspinola10 en gmail.com<http://es.mc296.mail.yahoo.com/mc/compose?to=mspinola10 en gmail.com> >> Teléfono: (506) 2277-3598 >> Fax: (506) 2237-7036 >> Personal website: Lobito de río < >> https://sites.google.com/site/lobitoderio/> >> Institutional website: ICOMVIS <http://www.icomvis.una.ac.cr/> >> >> [[alternative HTML version deleted]] >> >> >> -----Adjunto en línea a continuación----- >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org<http://es.mc296.mail.yahoo.com/mc/compose?to=R-help-es en r-project.org> >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> > > > -- > *Manuel Spínola, Ph.D.* > Instituto Internacional en Conservación y Manejo de Vida Silvestre > Universidad Nacional > Apartado 1350-3000 > Heredia > COSTA RICA > mspinola en una.ac.cr > mspinola10 en gmail.com > Teléfono: (506) 2277-3598 > Fax: (506) 2237-7036 > Personal website: Lobito de río <https://sites.google.com/site/lobitoderio/> > Institutional website: ICOMVIS <http://www.icomvis.una.ac.cr/> > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >
Muchas gracias Carlos, Eso también funcionó. Ahora, en mi conjunto de datos reales tengo 20 columnas a las cuales quiero aplicarle la suma. estoy intentando esto y me da error:> aggdata <-aggregate(cbind(df[, 3:22]) ~ especie + sitio, df, sum)Error en model.frame.default(formula = cbind(df[, 3:22]) ~ especie + sitio, : invalid type (list) for variable ''cbind(df[, 3:22])'' Saludos, Manuel El 1 de julio de 2012 09:51, Carlos J. Gil Bellosta <cgb@datanalytics.com>escribió:> Hola, ¿qué tal? > > Si tus columnas son m y n, puedes probar con > > aggregate( cbind(n, m) ~ especie + año, datos, sum ) > > Un saludo, > > Carlos J. Gil Bellosta > http://www.datanalytics.com > > > > El día 1 de julio de 2012 17:37, Manuel Spínola <mspinola10@gmail.com> > escribió: > > Muchas gracias Eva y Jorge, > > > > Siguiendo el consejo de Eva, el cual me funcionó, ¿qué tal si tengo más > de > > un columna (col1, col2, col3, etc)? intenté algunas cosas como > > > > sum(c(col1, col2, col3) > > > > sum(df[, 3:22]) # son las columnas 3 a 22 > > > > Saludos, > > > > Manuel > > > > El 1 de julio de 2012 08:11, Eva Prieto Castro <evapcastro@yahoo.es > >escribió: > > > >> Hola, Manuel: > >> > >> Existirán varias maneras, pero a mí me resulta muy cómodo utilizar > >> consultas Sql: > >> > >> *dfSuma<-sqldf("select especie, sitio, sum(col1) from df group by > >> especie, sitio") > >> * > >> siendo *df *tu data.frame. > >> > >> Obs.: Necesitas instalar el paquete sqldf > >> > >> Un saludo > >> Eva > >> > >> --- El *dom, 1/7/12, Manuel Spínola <mspinola10@gmail.com>* escribió: > >> > >> > >> De: Manuel Spínola <mspinola10@gmail.com> > >> Asunto: [R-es] Suma de filas en marco de datos > >> Para: "R" <r-help-es@r-project.org> > >> Fecha: domingo, 1 de julio, 2012 15:06 > >> > >> Estimados miembros de la lista, > >> > >> Tengo un marco de datos: > >> > >> especie año sitio col1 > >> > >> A 2008 1 3 > >> A 2008 2 0 > >> A 2008 3 1 > >> B 2008 1 2 > >> B 2008 2 1 > >> B 2008 3 0 > >> A 2009 1 5 > >> A 2009 2 6 > >> A 2009 3 2 > >> B 2009 1 4 > >> B 2009 2 0 > >> B 2009 3 3 > >> > >> y quisiera saber como puedo sumar la columna "col1" para cada especie, > por > >> sitio y para todos los años, es decir que la suma obtenga. > >> > >> especie sitio col1 > >> A 1 8 > >> A 2 6 > >> A 3 3 > >> B 1 6 > >> B 2 1 > >> B 3 3 > >> > >> Saludos, > >> > >> Manuel > >> > >> -- > >> *Manuel Spínola, Ph.D.* > >> > >> Instituto Internacional en Conservación y Manejo de Vida Silvestre > >> Universidad Nacional > >> Apartado 1350-3000 > >> Heredia > >> COSTA RICA > >> mspinola@una.ac.cr< > http://es.mc296.mail.yahoo.com/mc/compose?to=mspinola@una.ac.cr> > >> mspinola10@gmail.com< > http://es.mc296.mail.yahoo.com/mc/compose?to=mspinola10@gmail.com> > >> Teléfono: (506) 2277-3598 > >> Fax: (506) 2237-7036 > >> Personal website: Lobito de río < > >> https://sites.google.com/site/lobitoderio/> > >> Institutional website: ICOMVIS <http://www.icomvis.una.ac.cr/> > >> > >> [[alternative HTML version deleted]] > >> > >> > >> -----Adjunto en línea a continuación----- > >> > >> _______________________________________________ > >> R-help-es mailing list > >> R-help-es@r-project.org< > http://es.mc296.mail.yahoo.com/mc/compose?to=R-help-es@r-project.org> > >> https://stat.ethz.ch/mailman/listinfo/r-help-es > >> > >> > > > > > > -- > > *Manuel Spínola, Ph.D.* > > Instituto Internacional en Conservación y Manejo de Vida Silvestre > > Universidad Nacional > > Apartado 1350-3000 > > Heredia > > COSTA RICA > > mspinola@una.ac.cr > > mspinola10@gmail.com > > Teléfono: (506) 2277-3598 > > Fax: (506) 2237-7036 > > Personal website: Lobito de río < > https://sites.google.com/site/lobitoderio/> > > Institutional website: ICOMVIS <http://www.icomvis.una.ac.cr/> > > > > [[alternative HTML version deleted]] > > > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es@r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > >-- *Manuel Spínola, Ph.D.* Instituto Internacional en Conservación y Manejo de Vida Silvestre Universidad Nacional Apartado 1350-3000 Heredia COSTA RICA mspinola@una.ac.cr mspinola10@gmail.com Teléfono: (506) 2277-3598 Fax: (506) 2237-7036 Personal website: Lobito de río <https://sites.google.com/site/lobitoderio/> Institutional website: ICOMVIS <http://www.icomvis.una.ac.cr/> [[alternative HTML version deleted]]
Hola, Manuel: Creo que mi solución no te conviene en este caso; seguro que la que te ofrece Carlos es más eficiente. Para utilizar la mía tendrías que añadir un bucle for destinado a la construcción de la cadena que le pasas a la función sqldf. En cada iteración añadirías el sum(coli)correspondiente. Un saludo. Eva --- El dom, 1/7/12, Manuel Spínola <mspinola10@gmail.com> escribió: De: Manuel Spínola <mspinola10@gmail.com> Asunto: Re: [R-es] Suma de filas en marco de datos Para: "Eva Prieto Castro" <evapcastro@yahoo.es> CC: "R" <r-help-es@r-project.org> Fecha: domingo, 1 de julio, 2012 17:37 Muchas gracias Eva y Jorge, Siguiendo el consejo de Eva, el cual me funcionó, ¿qué tal si tengo más de un columna (col1, col2, col3, etc)? intenté algunas cosas como sum(c(col1, col2, col3) sum(df[, 3:22]) # son las columnas 3 a 22 Saludos, Manuel El 1 de julio de 2012 08:11, Eva Prieto Castro <evapcastro@yahoo.es> escribió: Hola, Manuel: Existirán varias maneras, pero a mí me resulta muy cómodo utilizar consultas Sql: dfSuma<-sqldf("select especie, sitio, sum(col1) from df group by especie, sitio") siendo df tu data.frame. Obs.: Necesitas instalar el paquete sqldf Un saludo Eva --- El dom, 1/7/12, Manuel Spínola <mspinola10@gmail.com> escribió: De: Manuel Spínola <mspinola10@gmail.com> Asunto: [R-es] Suma de filas en marco de datos Para: "R" <r-help-es@r-project.org> Fecha: domingo, 1 de julio, 2012 15:06 Estimados miembros de la lista, Tengo un marco de datos: especie año sitio col1 A 2008 1 3 A 2008 2 0 A 2008 3 1 B 2008 1 2 B 2008 2 1 B 2008 3 0 A 2009 1 5 A 2009 2 6 A 2009 3 2 B 2009 1 4 B 2009 2 0 B 2009 3 3 y quisiera saber como puedo sumar la columna "col1" para cada especie, por sitio y para todos los años, es decir que la suma obtenga. especie sitio col1 A 1 8 A 2 6 A 3 3 B 1 6 B 2 1 B 3 3 Saludos, Manuel -- *Manuel Spínola, Ph.D.* Instituto Internacional en Conservación y Manejo de Vida Silvestre Universidad Nacional Apartado 1350-3000 Heredia COSTA RICA mspinola@una.ac.cr mspinola10@gmail.com Teléfono: (506) 2277-3598 Fax: (506) 2237-7036 Personal website: Lobito de río <https://sites.google.com/site/lobitoderio/> Institutional website: ICOMVIS <http://www.icomvis.una.ac.cr/> [[alternative HTML version deleted]] -----Adjunto en línea a continuación----- _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es -- Manuel Spínola, Ph.D. Instituto Internacional en Conservación y Manejo de Vida Silvestre Universidad Nacional Apartado 1350-3000 Heredia COSTA RICA mspinola@una.ac.cr mspinola10@gmail.com Teléfono: (506) 2277-3598 Fax: (506) 2237-7036 Personal website: Lobito de río Institutional website: ICOMVIS [[alternative HTML version deleted]]
Muchas gracias Eva. Ahora conozco del paquete sqldf, y parece muy útil. Saludos, Manuel El 1 de julio de 2012 10:54, Eva Prieto Castro <evapcastro@yahoo.es>escribió:> Hola, Manuel: > > Creo que mi solución no te conviene en este caso; seguro que la que te > ofrece Carlos es más eficiente. > > Para utilizar la mía tendrías que añadir un bucle for destinado a la > construcción de la cadena que le pasas a la función sqldf. En cada > iteración añadirías el sum(coli)correspondiente. > > Un saludo. > Eva > > --- El *dom, 1/7/12, Manuel Spínola <mspinola10@gmail.com>* escribió: > > > De: Manuel Spínola <mspinola10@gmail.com> > Asunto: Re: [R-es] Suma de filas en marco de datos > Para: "Eva Prieto Castro" <evapcastro@yahoo.es> > CC: "R" <r-help-es@r-project.org> > Fecha: domingo, 1 de julio, 2012 17:37 > > > Muchas gracias Eva y Jorge, > > Siguiendo el consejo de Eva, el cual me funcionó, ¿qué tal si tengo más de > un columna (col1, col2, col3, etc)? intenté algunas cosas como > > sum(c(col1, col2, col3) > > sum(df[, 3:22]) # son las columnas 3 a 22 > > Saludos, > > Manuel > > El 1 de julio de 2012 08:11, Eva Prieto Castro <evapcastro@yahoo.es<http://es.mc296.mail.yahoo.com/mc/compose?to=evapcastro@yahoo.es> > > escribió: > > Hola, Manuel: > > Existirán varias maneras, pero a mí me resulta muy cómodo utilizar > consultas Sql: > > *dfSuma<-sqldf("select especie, sitio, sum(col1) from df group by > especie, sitio") > * > siendo *df *tu data.frame. > > Obs.: Necesitas instalar el paquete sqldf > > Un saludo > Eva > > --- El *dom, 1/7/12, Manuel Spínola <mspinola10@gmail.com<http://es.mc296.mail.yahoo.com/mc/compose?to=mspinola10@gmail.com> > >* escribió: > > > De: Manuel Spínola <mspinola10@gmail.com<http://es.mc296.mail.yahoo.com/mc/compose?to=mspinola10@gmail.com> > > > Asunto: [R-es] Suma de filas en marco de datos > Para: "R" <r-help-es@r-project.org<http://es.mc296.mail.yahoo.com/mc/compose?to=r-help-es@r-project.org> > > > Fecha: domingo, 1 de julio, 2012 15:06 > > Estimados miembros de la lista, > > Tengo un marco de datos: > > especie año sitio col1 > > A 2008 1 3 > A 2008 2 0 > A 2008 3 1 > B 2008 1 2 > B 2008 2 1 > B 2008 3 0 > A 2009 1 5 > A 2009 2 6 > A 2009 3 2 > B 2009 1 4 > B 2009 2 0 > B 2009 3 3 > > y quisiera saber como puedo sumar la columna "col1" para cada especie, por > sitio y para todos los años, es decir que la suma obtenga. > > especie sitio col1 > A 1 8 > A 2 6 > A 3 3 > B 1 6 > B 2 1 > B 3 3 > > Saludos, > > Manuel > > -- > *Manuel Spínola, Ph.D.* > > Instituto Internacional en Conservación y Manejo de Vida Silvestre > Universidad Nacional > Apartado 1350-3000 > Heredia > COSTA RICA > mspinola@una.ac.cr<http://es.mc296.mail.yahoo.com/mc/compose?to=mspinola@una.ac.cr> > mspinola10@gmail.com<http://es.mc296.mail.yahoo.com/mc/compose?to=mspinola10@gmail.com> > Teléfono: (506) 2277-3598 > Fax: (506) 2237-7036 > Personal website: Lobito de río < > https://sites.google.com/site/lobitoderio/> > Institutional website: ICOMVIS <http://www.icomvis.una.ac.cr/> > > [[alternative HTML version deleted]] > > > -----Adjunto en línea a continuación----- > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org<http://es.mc296.mail.yahoo.com/mc/compose?to=R-help-es@r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > -- > *Manuel Spínola, Ph.D.* > Instituto Internacional en Conservación y Manejo de Vida Silvestre > Universidad Nacional > Apartado 1350-3000 > Heredia > COSTA RICA > mspinola@una.ac.cr<http://es.mc296.mail.yahoo.com/mc/compose?to=mspinola@una.ac.cr> > mspinola10@gmail.com<http://es.mc296.mail.yahoo.com/mc/compose?to=mspinola10@gmail.com> > Teléfono: (506) 2277-3598 > Fax: (506) 2237-7036 > Personal website: Lobito de río<https://sites.google.com/site/lobitoderio/> > Institutional website: ICOMVIS <http://www.icomvis.una.ac.cr/> > >-- *Manuel Spínola, Ph.D.* Instituto Internacional en Conservación y Manejo de Vida Silvestre Universidad Nacional Apartado 1350-3000 Heredia COSTA RICA mspinola@una.ac.cr mspinola10@gmail.com Teléfono: (506) 2277-3598 Fax: (506) 2237-7036 Personal website: Lobito de río <https://sites.google.com/site/lobitoderio/> Institutional website: ICOMVIS <http://www.icomvis.una.ac.cr/> [[alternative HTML version deleted]]
Hola, Añado una opción adicional, diferente a las anteriores por si puede ser de interés, especialmente para tablas grandes. Está basado en el paquete "data.table" que es una extensión de la funcionalidad de data.frame y que realmente tiene una sintaxis parecida a la de SQL pero con extensiones y con mayor velocidad (de nuevo especialmente para data.frames grandes/muy grandes). En este ejemplo se calcula la suma de las tres primeras columnas del data.frame iris agrupadas por Species.> library(data.table) > DT<-data.table(iris) > DT[, lapply(.SD, sum), by=Species, .SDcols=1:3]Species Sepal.Length Sepal.Width Petal.Length [1,] setosa 250.3 171.4 73.1 [2,] versicolor 296.8 138.5 213.0 [3,] virginica 329.4 148.7 277.6 Saludos, Carlos Ortega www.qualityexcellence.es El 1 de julio de 2012 15:06, Manuel Spínola <mspinola10@gmail.com> escribió:> Estimados miembros de la lista, > > Tengo un marco de datos: > > especie año sitio col1 > > A 2008 1 3 > A 2008 2 0 > A 2008 3 1 > B 2008 1 2 > B 2008 2 1 > B 2008 3 0 > A 2009 1 5 > A 2009 2 6 > A 2009 3 2 > B 2009 1 4 > B 2009 2 0 > B 2009 3 3 > > y quisiera saber como puedo sumar la columna "col1" para cada especie, por > sitio y para todos los años, es decir que la suma obtenga. > > especie sitio col1 > A 1 8 > A 2 6 > A 3 3 > B 1 6 > B 2 1 > B 3 3 > > Saludos, > > Manuel > > -- > *Manuel Spínola, Ph.D.* > Instituto Internacional en Conservación y Manejo de Vida Silvestre > Universidad Nacional > Apartado 1350-3000 > Heredia > COSTA RICA > mspinola@una.ac.cr > mspinola10@gmail.com > Teléfono: (506) 2277-3598 > Fax: (506) 2237-7036 > Personal website: Lobito de río < > https://sites.google.com/site/lobitoderio/> > Institutional website: ICOMVIS <http://www.icomvis.una.ac.cr/> > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]