<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>Hola Clei, ya te han dado varias opciones ... solo para aportar
      un detalle que te puede servir, si en la opcion 3 de Carlos Ortega
      (donde usa data.table), NO ASIGNAS la suma a un nuevo objeto, es
      decir, no usas el operador ":=" para asignar el resultados a la
      nueva columna "mi_sum" como hace Carlos, obtienes una tabla de
      resultados limpia, sin los datos originales, solo con las sumas
      agrupadas, por ejemplo:</p>
    <p>Sexo<-c(1,1,1,2,2,2,2,1)<br>
      edad<-c(10,12,15,12,10,15,12,15)<br>
      frec<-c(150,125,147,123,156,174,185,195)<br>
      df<-data.frame(Sexo,edad,frec)<br>
      library(data.table)<br>
      df <- as.data.table(df)<br>
      sumXsexoedad <- df[, sum(frec), by=.(Sexo,edad)]<br>
      > sumXsexoedad <br>
         Sexo edad  V1<br>
      1:    1   10 150<br>
      2:    1   12 125<br>
      3:    1   15 342<br>
      4:    2   12 308<br>
      5:    2   10 156<br>
      6:    2   15 174<br>
    </p>
    <p>Suerte !!!</p>
    <p>Eric.<br>
    </p>
    <p><br>
    </p>
    <p><br>
    </p>
    <p><br>
    </p>
    <p><br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 07/23/2017 04:45 PM, Carlos Ortega
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAOKbq8gLtangNz3e2EAAA=L8t0bfyWm_FGsJrwvvc+wzckbqsw@mail.gmail.com"
      type="cite">
      <pre wrap="">Hola,

Esas son diferentes opciones.
Si tu conjunto es muy grande, las opciones de dplyr, sqldf y especialmente
data.table son por las que optaría...


#-----------------------------------------
</pre>
      <blockquote type="cite">
        <pre wrap=""># Opcion 1
aggregate(frec ~ edad + Sexo, data = df, FUN = sum)
</pre>
      </blockquote>
      <pre wrap="">  edad Sexo frec
1   10    1  150
2   12    1  125
3   15    1  342
4   10    2  156
5   12    2  308
6   15    2  174
</pre>
      <blockquote type="cite">
        <pre wrap="">
# Opcion 2
library(dplyr)
res_out <- df %>%
</pre>
      </blockquote>
      <pre wrap="">+   group_by(edad, Sexo) %>%
+   summarise( res = sum(frec))
</pre>
      <blockquote type="cite">
        <pre wrap="">res_out
</pre>
      </blockquote>
      <pre wrap=""># A tibble: 6 x 3
# Groups:   edad [?]
   edad  Sexo   res
  <dbl> <dbl> <dbl>
1    10     1   150
2    10     2   156
3    12     1   125
4    12     2   308
5    15     1   342
6    15     2   174
</pre>
      <blockquote type="cite">
        <pre wrap="">
# Opcion 3
library(data.table)
DT <- as.data.table(df)
DT[, mi_sum := sum(frec), by=c('Sexo','edad')]
DT
</pre>
      </blockquote>
      <pre wrap="">   Sexo edad frec mi_sum
1:    1   10  150    150
2:    1   12  125    125
3:    1   15  147    342
4:    2   12  123    308
5:    2   10  156    156
6:    2   15  174    174
7:    2   12  185    308
8:    1   15  195    342
</pre>
      <blockquote type="cite">
        <pre wrap="">
# Opcion 4
library(sqldf)
res_sql <- sqldf("select Sexo, edad, sum(frec) as sumfrec from df group
</pre>
      </blockquote>
      <pre wrap="">by Sexo,edad")
</pre>
      <blockquote type="cite">
        <pre wrap="">res_sql
</pre>
      </blockquote>
      <pre wrap="">  Sexo edad sumfrec
1    1   10     150
2    1   12     125
3    1   15     342
4    2   10     156
5    2   12     308
6    2   15     174
</pre>
      <blockquote type="cite">
        <pre wrap="">
</pre>
      </blockquote>
      <pre wrap="">#-----------------------------------------


Saludos,
Carlos Ortega
<a class="moz-txt-link-abbreviated" href="http://www.qualityexcellence.es">www.qualityexcellence.es</a>

El 23 de julio de 2017, 21:13, Clei Y <a class="moz-txt-link-rfc2396E" href="mailto:cleiver_yam@hotmail.com"><cleiver_yam@hotmail.com></a> escribió:

</pre>
      <blockquote type="cite">
        <pre wrap="">Buen día,


Tengo un data frame con los siguientes datos




</pre>
        <blockquote type="cite">
          <pre wrap="">Sexo<-c(1,1,1,2,2,2,2,1)
edad<-c(10,12,15,12,10,15,12,15)
frec<-c(150,125,147,123,156,174,185,195)
df<-data.frame(Sexo,edad,frec)
</pre>
        </blockquote>
        <pre wrap="">

Quisiera saber como elaborar una tabla en la cual seleccione el sexo y la
edad y R realice la suma de la frecuencia debido a que la lista original
incluye miles de observaciones y existen muchas observaciones con mismo
sexo, misma edad y es necesario realizar la suma de las frecuencias.


Saludos y gracias

        [[alternative HTML version deleted]]


_______________________________________________
R-help-es mailing list
<a class="moz-txt-link-abbreviated" href="mailto:R-help-es@r-project.org">R-help-es@r-project.org</a>
<a class="moz-txt-link-freetext" href="https://stat.ethz.ch/mailman/listinfo/r-help-es">https://stat.ethz.ch/mailman/listinfo/r-help-es</a>

</pre>
      </blockquote>
      <pre wrap="">


</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
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.
</pre>
  </body>
</html>