[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