[R-es] Matriz de Datos

Carlos Ortega cof @ending from qu@lityexcellence@e@
Vie Dic 7 12:24:48 CET 2018


La alternativa " tidyverse" ...

> Lines <- "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
+ "
> DF <- read.table(textConnection(Lines), header = T, as.is = TRUE)
>
> library(tidyverse)
>


*DF %>% +     group_by(Descripcion, Grupo) %>%+     summarize(Suma =
sum(Monto)) %>%+     spread(Grupo, Suma)*
# A tibble: 3 x 4
# Groups:   Descripcion [3]
  Descripcion   `1`   `2`   `3`
  <chr>       <dbl> <dbl> <dbl>
1 a            6.57  3.50 NA
2 b            5.64 NA     4.44
3 c            2.30  4.93  1.11

Saludos,
Carlos Ortega
www.qualityexcellence.es

El vie., 7 dic. 2018 a las 5:49, Eric (<ericconchamunoz using gmail.com>)
escribió:

> 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 using r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
> >
>
> _______________________________________________
> R-help-es mailing list
> R-help-es using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>


-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es