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

javier.ruben.marcuzzi en gmail.com javier.ruben.marcuzzi en gmail.com
Mie Feb 15 16:47:14 CET 2017


Estimados

Yo pienso que lo que aporta Carlos J Gil Bellosta es una buena opción, hay una forma artesanal, supongamos que tenemos 5 tablas, de 5, 4 y 3 columnas, creo un data.frame de 5 columnas, al de 4 y 3 les agrego una o dos columnas, cbind, luego a todos rbind al data.frame creado para juntarlos.

Desconozco como son las datos, pero puede ser que sean lo mismo pero ordenados de distinta formas, por ejemplo hay 3 variables, una almacenada en cada columna, otra forma son 3 variables pero almacenadas en dos columnas, la primera hace referencia a la variable, y la segunda al valor de la variable, en esta segunda forma equivalente se reduce el número de columnas pero aumenta el número de filas, lo cuál de acuerdo al tipo de análisis puede ser beneficioso.

Este segundo esquema no iría tan sencillo, aunque es posible con algo de trabajo.

Javier Rubén Marcuzzi

De: Carlos J. Gil Bellosta 
Enviado: miércoles, 15 de febrero de 2017 12:05
Para: Javier Valdes Cantallopts (DGA)
CC: r-help-es en r-project.org
Asunto: Re: [R-es]problemas con rBIND con distintos número de columnas

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.
 

 
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.
 

 
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.
 
 
 
 
 
 

 
 


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


------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20170215/0760fa60/attachment-0001.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: 2AC4A4A28B6C4C62A3D3D31F2595362D.png
Type: image/png
Size: 158 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20170215/0760fa60/attachment-0003.png>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: FF28E9993ADE4C7DBFC60545816504FD.png
Type: image/png
Size: 148 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20170215/0760fa60/attachment-0004.png>
------------ 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/0760fa60/attachment-0005.png>


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