[R-es] Matriz de Datos

Rafael Saturno r@f@el_@@turno @ending from hotm@il@com
Lun Dic 10 11:43:09 CET 2018


Perfecto, muchas gracias a todos

Obtener Outlook para Android<https://aka.ms/ghei36>

________________________________
From: Carlos Ortega <cof using qualityexcellence.es>
Sent: Friday, December 7, 2018 8:24:48 AM
To: Rafael Saturno
Cc: Lista R
Subject: Re: [R-es] Matriz de Datos

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<http://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<http://www.qualityexcellence.es>

El vie., 7 dic. 2018 a las 5:49, Eric (<ericconchamunoz using gmail.com<mailto: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<mailto: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<mailto:R-help-es using r-project.org>
https://stat.ethz.ch/mailman/listinfo/r-help-es


--
Saludos,
Carlos Ortega
www.qualityexcellence.es<http://www.qualityexcellence.es>

	[[alternative HTML version deleted]]



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