Muchas gracias, pensaba hacerlo en una sola línea pero no anda. Me quedo con dcast así no tengo que cargar más paquetes. Un abrazo! Fernando Macedo El 03/09/16 a las 14:26, Carlos J. Gil Bellosta escribió:> reshape2 + dcast > > El día 3 de septiembre de 2016, 19:23, Fernando Macedo > <fermace en gmail.com> escribió: >> Buenas, estoy intentando hacer una especie de pivot tables con data.table >> pero no logro que me salga. >> >> Este código refleja un poco lo que quiero >> >> >> library(data.table) >> set.seed(1234) >> DT <- data.table(x=rep(c(1,2,3),each=30), >> y=letters[sample(1:3,30,replace = T,)], >> v=sample(1:100,30)) >> out <- DT[,list(N=.N),by=list(x,y)] >> >> Eso genera una salida como esta: >> >> x y N >> 1: 1 a 8 >> 2: 1 b 10 >> 3: 1 c 12 >> 4: 2 a 8 >> 5: 2 b 10 >> 6: 2 c 12 >> 7: 3 a 8 >> 8: 3 b 10 >> 9: 3 c 12 >> >> >> Que esta bien, pero lo que me interesa a mi es sacar una tabla con la >> siguiente estructura: >> >> x a b c >> 1 8 10 12 >> 2 8 10 12 >> ... >> >> y así. Porque después quiero hacer frecuencias y me resulta más fácil para >> armar columnas de frecuencias seguidas de esas y queda mejor para presentar >> los datos también. >> >> La verdad que he buscado pero no logro dar con la tecla de hacerlo en un >> solo paso en data.table, o de repente no la hay. >> >> Desde ya agradezco su ayuda. >> Saludos! >> >> -- >> Fernando Macedo >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es
Hola, "dcast" también es función de data.table...> dcast(DT, x ~ y, drop = FALSE)Using 'v' as value column. Use 'value.var' to override Aggregate function missing, defaulting to 'length' x a b c 1: 1 15 8 7 2: 2 15 8 7 3: 3 15 8 7 Saludos, Carlos Ortega www.qualityexcellence.es El 3 de septiembre de 2016, 21:19, Fernando Macedo <fermace en gmail.com> escribió:> Muchas gracias, pensaba hacerlo en una sola línea pero no anda. > Me quedo con dcast así no tengo que cargar más paquetes. > > Un abrazo! > > Fernando Macedo > > El 03/09/16 a las 14:26, Carlos J. Gil Bellosta escribió: > > reshape2 + dcast >> >> El día 3 de septiembre de 2016, 19:23, Fernando Macedo >> <fermace en gmail.com> escribió: >> >>> Buenas, estoy intentando hacer una especie de pivot tables con data.table >>> pero no logro que me salga. >>> >>> Este código refleja un poco lo que quiero >>> >>> >>> library(data.table) >>> set.seed(1234) >>> DT <- data.table(x=rep(c(1,2,3),each=30), >>> y=letters[sample(1:3,30,replace = T,)], >>> v=sample(1:100,30)) >>> out <- DT[,list(N=.N),by=list(x,y)] >>> >>> Eso genera una salida como esta: >>> >>> x y N >>> 1: 1 a 8 >>> 2: 1 b 10 >>> 3: 1 c 12 >>> 4: 2 a 8 >>> 5: 2 b 10 >>> 6: 2 c 12 >>> 7: 3 a 8 >>> 8: 3 b 10 >>> 9: 3 c 12 >>> >>> >>> Que esta bien, pero lo que me interesa a mi es sacar una tabla con la >>> siguiente estructura: >>> >>> x a b c >>> 1 8 10 12 >>> 2 8 10 12 >>> ... >>> >>> y así. Porque después quiero hacer frecuencias y me resulta más fácil >>> para >>> armar columnas de frecuencias seguidas de esas y queda mejor para >>> presentar >>> los datos también. >>> >>> La verdad que he buscado pero no logro dar con la tecla de hacerlo en un >>> solo paso en data.table, o de repente no la hay. >>> >>> Desde ya agradezco su ayuda. >>> Saludos! >>> >>> -- >>> Fernando Macedo >>> >>> _______________________________________________ >>> R-help-es mailing list >>> R-help-es en r-project.org >>> https://stat.ethz.ch/mailman/listinfo/r-help-es >>> >> > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
javier.ruben.marcuzzi en gmail.com
2016-Sep-05 21:04 UTC
[R-es] Pivot tables con data.table
Estimados Hay un artículo con un ejemplo en https://blog.exploratory.io/summarizing-data-quickly-like-pivoting-a9ed9c81d495#.asld1e68f Javier Rubén Marcuzzi De: Carlos Ortega [[alternative HTML version deleted]]