[R-es] problemas con rBIND con distintos número de columnas

Víctor Granda García victorgrandagarcia en gmail.com
Mie Feb 15 21:55:16 CET 2017


Como ha comentado Xavier Tibau antes, todo el problema se soluciona usando
bind_rows del paquete dplyr:

library(dplyr)
foo <- bind_rows(tabla1, tabla2, tabla3, tabla4)

sin complicarse mucho la vida (salvo instalar dplyr). Según la ayuda de
bind_rows: "columns are matched by name, and any values that don't match
will be filled with NA." es decir, valores de una columna que no exista en
un data frame serán NA en el resultado final. Si aún así te sigue  doblando
el número de columnas, yo revisaria el nombre de las columnas, porque si no
es el mismo mal vamos. Todas las columnas de todos los data frames tienen
que tener el mismo nombre (las 11 columnas coincidentes en tus cuatro
tablas).

Espero que te sirva

El mié., 15 feb. 2017 a las 16:05, Carlos J. Gil Bellosta (<
cgb en datanalytics.com>) escribió:

> Si tu info es toda numérica y cada tabla tiene una clave primaria, siempre
> puedes:
>
> 1) Hacer un melt por clave primaria de cada tabla para dejarla en formato
> largo.
> 2) Apilar las tablas obtenidas con el do.call + rbind de toda la vida.
> 3) Hacer un cast para dejarla cuadrada de nuevo.
>
> Así no tendrás problemas de ningún tipo.
>
> Un saludo,
>
> Carlos J. Gil Bellosta
> http://www.datanalytics.com
>
>
> El 15 de febrero de 2017, 15:59, Javier Valdes Cantallopts (DGA) <
> javier.valdes en mop.gov.cl> escribió:
>
> De esa forma me sigue entregando lo mismo, multiplica las variables por
> dos (*80 obs 26 variables*) debería ser (*80 obs 13 variables*).En
> concreto pega la información pero la costado, no hacia abajo.
>
> Solucionara el tema si le agrego dos columnas ficticias para que queden
> todas las bases con 13 variables?
>
> Saludos.
>
>
>
> [image: Descripción: FIRMA2]
>
>
>
> *De:* Carlos Ortega [mailto:cof en qualityexcellence.es]
> *Enviado el:* martes, 14 de febrero de 2017 16:57
>
> *Para:* Javier Valdes Cantallopts (DGA)
> *CC:* r-help-es en r-project.org
> *Asunto:* Re: problemas con rBIND con distintos número de columnas
>
>
>
> ​Hola,
>
>
>
> Recordaba que sí que se podía hacer con data.table....
>
> Efectivamente...
>
>
>
>
>
> > library(data.table)
>
> > x_dt <- data.table( a= rnorm(10), b = rnorm(10))
>
> > y_dt <- data.table(  a= rnorm(10), b = rnorm(10), c = rnorm(10))
>
> >
>
> > l <- list(x_dt, y_dt)
>
> > rbindlist(l, fill = TRUE)
>
>               a           b           c
>
>  1:  0.40654327  1.57344885          NA
>
>  2:  0.08165417  0.15028804          NA
>
>  3:  0.37026494 -1.18386924          NA
>
>  4: -0.93010544  2.24961712          NA
>
>  5:  0.10843810  0.24032676          NA
>
>  6:  0.15378877 -0.78666170          NA
>
>  7:  1.03502437 -0.55456852          NA
>
>  8:  0.72717696 -0.08930502          NA
>
>  9:  2.33360032  0.85764087          NA
>
> 10: -0.13165594  1.90335605          NA
>
> 11: -0.58854517 -0.65231258 -2.08017763
>
> 12: -0.44410190 -0.60729636  0.75419119
>
> 13: -0.12112606 -2.95377291 -0.81158886
>
> 14: -0.16889601 -0.17042251  0.08904027
>
> 15:  0.09432534 -0.91301852  0.49149478
>
> 16: -1.19009027 -3.08695232  0.80642330
>
> 17:  0.50699299  0.32040260 -0.84056240
>
> 18: -0.89214614  0.33931926 -0.20491751
>
> 19:  0.55252772  2.09847775  0.28919268
>
> 20: -1.20012169 -1.17608943 -1.55813564
>
>
>
>>
> Saludos,
>
> Carlos Ortega
>
> www.qualityexcellence.es
>
>
>
>
>
> El 14 de febrero de 2017, 19:09, Javier Valdes Cantallopts (DGA) <
> javier.valdes en mop.gov.cl> escribió:
>
> Hola Carlos:
>
> Tanto *rbind(base)*  como *rbind(data.table)* generan el mismo resultado *que
> no busco*.
>
> Que solución se le podría dar específicamente a la data de 11 columnas,
> que es la que me da problema.
>
> Saludos.
>
>
>
> [image: Descripción: FIRMA2]
>
>
>
> *De:* Carlos Ortega [mailto:cof en qualityexcellence.es]
> *Enviado el:* martes, 14 de febrero de 2017 14:21
> *Para:* Javier Valdes Cantallopts (DGA)
> *CC:* r-help-es en r-project.org
> *Asunto:* Re: problemas con rBIND con distintos número de columnas
>
>
>
> Hola Javier,
>
>
>
> Mientras que el "rbind()" que proporciona el paquete "base" en este caso
> te dará un error.
>
> El "rbind" que proporciona el paquete "data.table", creo que no lo da...
>
>
>
> Siempre puedes rellenar esos huecos con NAs en el data.frame al que le
> falte antes de juntarlas... y evitarte el trastorno.
>
>
>
> Saludos,
>
> Carlos Ortega
>
> www.qualityexcellence.es
>
>
>
> El 14 de febrero de 2017, 16:15, Javier Valdes Cantallopts (DGA) <
> javier.valdes en mop.gov.cl> escribió:
>
> Hola a todos:
>
> Necesito pegar 4 bases de datos de N variables y N columnas, EL PROBLEMA
> ES QUE 3 *CONSTAN DE 13 COLUMNAS*, y LA CUARTA CON *11 COLUMNAS*.
>
> He *usado rbind y smartbind*, sin embargo el resultado no es el esperado,
> ya que coloca las columnas a un costado y no hacia abajo como debería
>
> Como resultado necesito algo como LO QUE PRESENTO ABAJO, *RELLENANDO LOS
> ESPACIOS VACIOS CON “NA”*
>
>
>
> 30/03/15 7:00
>
> 38
>
> 13.28
>
> 275.4431
>
> -1.667118
>
> 638.5
>
> -1.459
>
> 3.08
>
> 175.5
>
> -130
>
> -64.52
>
> *Na*
>
> *Na*
>
> 30/03/15 8:00
>
> 39
>
> 13.27
>
> 273.3796
>
> -0.9093614
>
> 638.5
>
> -1.386
>
> 4.099
>
> 151.6
>
> -129.9
>
> -64.42
>
> *Na*
>
> *Na*
>
> 30/03/15 9:00
>
> 40
>
> 13.21
>
> 275.5319
>
> 19.8293
>
> 638.6
>
> -1.39
>
> 3.573
>
> 138.7
>
> -129.8
>
> -64.34
>
> *Na*
>
> *Na*
>
> 30/03/15 10:00
>
> 41
>
> 13.25
>
> 278.6717
>
> 69.58882
>
> 638.8
>
> -1.227
>
> 4.193
>
> 174.4
>
> -129.8
>
> -64.3
>
> *Na*
>
> *Na*
>
> 30/03/15 11:00
>
> 42
>
> 13.59
>
> 276.256
>
> 153.4836
>
> 638.9
>
> -0.888
>
> 4.291
>
> 39.6
>
> -129.8
>
> -64.35
>
> *Na*
>
> *Na*
>
> 30/03/15 12:00
>
> 43
>
> 14.71
>
> 276.9799
>
> 233.9256
>
> 639
>
> -0.587
>
> 3.561
>
> 133.1
>
> -129.9
>
> -64.44
>
> *Na*
>
> *Na*
>
> 30/03/15 13:00
>
> 44
>
> 14.56
>
> 265.1613
>
> 449.0849
>
> 639.3
>
> -0.011
>
> 3.624
>
> 180.1
>
> -130
>
> -64.53
>
> *Na*
>
> *Na*
>
> 30/03/15 14:00
>
> 45
>
> 14.51
>
> 268.376
>
> 418.3066
>
> 639.6
>
> 0.2
>
> 3.885
>
> 138.3
>
> -130.3
>
> -64.82
>
> *Na*
>
> *Na*
>
> 28/03/15 16:40
>
> 0
>
> 12.96
>
> 0
>
> 168.4
>
> -28.4
>
> 13.01
>
> 697.9466
>
> 5.268066
>
> 278.4181
>
> -111.8081
>
> 228.8923
>
> 620.3669
>
> 28/03/15 16:50
>
> 1
>
> 12.99
>
> 3.473
>
> 248.3
>
> -33.81
>
> 8.52
>
> 644.0493
>
> 5.009216
>
> 278.1592
>
> -110.2677
>
> 229.1674
>
> 590.3563
>
> 28/03/15 17:00
>
> 2
>
> 12.99
>
> 3.917
>
> 174.7
>
> -38.64
>
> 4.529
>
> 644.2397
>
> 4.819122
>
> 277.9691
>
> -111.376
>
> 227.1322
>
> 556.6758
>
>
>
> SALUDOS.
>
>
>
>
>
>
>
>
>
>
>
>
>
> [image: Descripción: FIRMA2]
>
>
>
>
> ------------------------------
>
>
> CONFIDENCIALIDAD: La información contenida en este mensaje y/o en los
> archivos adjuntos es de carácter confidencial o privilegiada y está
> destinada al uso exclusivo del emisor y/o de la persona o entidad a quien
> va dirigida. Si usted no es el destinatario, cualquier almacenamiento,
> divulgación, distribución o copia de esta información está estrictamente
> prohibido y sancionado por la ley. Si recibió este mensaje por error, por
> favor infórmenos inmediatamente respondiendo este mismo mensaje y borre
> todos los archivos adjuntos. Gracias.
>
> CONFIDENTIAL NOTE: The information transmitted in this message and/or
> attachments is confidential and/or privileged and is intented only for use
> of the person or entity to whom it is addressed. If you are not the
> intended recipient, any retention, dissemination, distribution or copy of
> this information is strictly prohibited and sanctioned by law. If you
> received this message in error, please reply us this same message and
> delete this message and all attachments. Thank you.
>
>
>
>
>
> --
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
>
> ------------------------------
>
>
> CONFIDENCIALIDAD: La información contenida en este mensaje y/o en los
> archivos adjuntos es de carácter confidencial o privilegiada y está
> destinada al uso exclusivo del emisor y/o de la persona o entidad a quien
> va dirigida. Si usted no es el destinatario, cualquier almacenamiento,
> divulgación, distribución o copia de esta información está estrictamente
> prohibido y sancionado por la ley. Si recibió este mensaje por error, por
> favor infórmenos inmediatamente respondiendo este mismo mensaje y borre
> todos los archivos adjuntos. Gracias.
>
> CONFIDENTIAL NOTE: The information transmitted in this message and/or
> attachments is confidential and/or privileged and is intented only for use
> of the person or entity to whom it is addressed. If you are not the
> intended recipient, any retention, dissemination, distribution or copy of
> this information is strictly prohibited and sanctioned by law. If you
> received this message in error, please reply us this same message and
> delete this message and all attachments. Thank you.
>
>
>
>
>
> --
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
> ------------------------------
>
> CONFIDENCIALIDAD: La información contenida en este mensaje y/o en los
> archivos adjuntos es de carácter confidencial o privilegiada y está
> destinada al uso exclusivo del emisor y/o de la persona o entidad a quien
> va dirigida. Si usted no es el destinatario, cualquier almacenamiento,
> divulgación, distribución o copia de esta información está estrictamente
> prohibido y sancionado por la ley. Si recibió este mensaje por error, por
> favor infórmenos inmediatamente respondiendo este mismo mensaje y borre
> todos los archivos adjuntos. Gracias.
>
> CONFIDENTIAL NOTE: The information transmitted in this message and/or
> attachments is confidential and/or privileged and is intented only for use
> of the person or entity to whom it is addressed. If you are not the
> intended recipient, any retention, dissemination, distribution or copy of
> this information is strictly prohibited and sanctioned by law. If you
> received this message in error, please reply us this same message and
> delete this message and all attachments. Thank you.
>
> _______________________________________________
> 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

-- 
*Víctor Granda García*
Tècnic


v.granda en creaf.uab.cat
Tel. +34 93 581 33 45


Campus UAB. Edifici C. 08193 Bellaterra (Barcelona) | *www.creaf.cat*
<http://www.creaf.uab.es/cat/index.htm>

Abans d'imprimir aquest missatge electrònic penseu en el medi ambient.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20170215/6116fc4c/attachment-0001.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: image001.png
Type: image/png
Size: 7089 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20170215/6116fc4c/attachment-0001.png>


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