Hola Rafael, con la librería data.table podrías hacerlo algo así:

library(data.table)
dat <- fread("tusdatos")
dat[,sum(Monto),by=.(D,Grupo)]

y obtener esto:

   D Grupo    V1
1: a     1 6.575
2: a     2 3.497
3: b     1 5.637
4: b     3 4.445
5: c     2 4.935
6: c     1 2.299
7: c     3 1.111

Ahí ya está calculado, luego lo puedes reordenar con dcast(dat2, D ~ Grupo, value.var="V1") y obtienes:

   D     1     2     3
1: a 6.575 3.497    NA
2: b 5.637    NA 4.445
3: c 2.299 4.935 1.111

Que creo que es lo que necesitas.

Suerte !!!

Eric.


pd: aquí puedes ver como funciona dcast() https://cran.r-project.org/web/packages/data.table/vignettes/datatable-reshape.html




On 06/12/2018 22:42, Rafael Saturno wrote:
Hola Comunidad,

Queria consultarles algo,

Tengo una data con la siguiente estructura

Descripcion     Grupo   Monto
a       1       1.826
a       2       3.497
a       1       4.749
b       1       3.999
b       1       1.638
b       3       4.445
c       2       4.935
c       1       2.299
c       3       1.111

Y quiero crear una matriz que a la fila tenga la descripcion y en la columna el 
grupo y en cada valor interno la suma del monto correspondiente,

Es decir algo como

Descripcion/Grupo       1       2       3
a       6.575   3.497   0
b       5.637   0       4.445
c       2.299   4.935   1.111

En excel lo haria con una tabla dinamica, hay alguna forma de hacerlo en R? esty 
utilizando un "for" pero tarda mucho

Muchas Gracias


        [[alternative HTML version deleted]]

_______________________________________________
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


_______________________________________________
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

Responder a