Hola a todos, Quisiera juntar las informacion de dos data.frames con una union de columnas un tanto especial. La informacion que tengo son datos de captura-recaptura de diferentes individuos, por ejemplo en una base de datos tengo:ID <- c(1,2,3,4)Fate_1 <- c(2,2,2,2)Fate_2 <- c(0,0,0,NA)Fate_3 <- c(0, NA, NA, NA) y en otra base de datos tengo:ID <- c(1,2,3)Fate_1 <- c(0, 0, 0, NA)Fate_2 <- c(NA, 0, NA, NA) Como podeis ver no todos los fates de todos los individuos tienen algun valor, y lo que gustaria es juntarlo sin the haya NAs entre diferentes Fates para cada fila, que es lo que me sucederia si hiciera un cbind entre los dos data.frames. Lo que se me habia ocurrido era hacer un cbind, que quedaria un resultado como este:ID <- c(1,2,3,4)Fate_1 <- c(2,2,2,2)Fate_2 <- c(0,0,0,NA)Fate_3 <- c(0, NA, NA, NA)Fate_1.Y <- c(0, 0, 0, NA)Fate_2.Y <- c(NA, 0, NA, NA) y despues ir fila por fila haciendo algo similar a lo que seria en excel de eliminar unas celdas y desplazar hacia la izquierda. Quedando las ultimas filas como NA, y estando toda la informacion de los Fates seguida, con el siguiente resultado: ID <- c(1,2,3,4)Fate_1 <- c(2,2,2,2)Fate_2 <- c(0,0,0,NA)Fate_3 <- c(0, 0, 0, NA)Fate_4 <- c(0, 0, NA, NA) Alguien sabe como podria hacer esta eliminacion de celdas y desplazamiento hacia la izquierda de manera automatica, u otra manera mejor para juntar esta informacion? Muchas gracias por adelantado, Un cordial saludo,Ruben [[alternative HTML version deleted]]
Víctor Granda García
2016-Feb-29  11:41 UTC
[R-es] Juntar dos data.frames eliminando celdas con NA
Hola Rubén, Echa un vistazo al paquete dplyr, si no recuerdo mal las funciones "left_join" o "inner_join" hacen lo que quieres. Mira en https://www.rstudio.com/wp-content/uploads/2015/02/data-wrangling-cheatsheet.pdf para un vistazo rápido de lo que puede hacer y https://cran.rstudio.com/web/packages/dplyr/vignettes/introduction.html para una introducción más completa. Espero que te sirva, un saludo. Víctor. El lun., 29 feb. 2016 a las 12:36, Ruben Bermad (<ruben_bm en hotmail.com>) escribió:> Hola a todos, > Quisiera juntar las informacion de dos data.frames con una union de > columnas un tanto especial. La informacion que tengo son datos de > captura-recaptura de diferentes individuos, por ejemplo en una base de > datos tengo:ID <- c(1,2,3,4)Fate_1 <- c(2,2,2,2)Fate_2 <- c(0,0,0,NA)Fate_3 > <- c(0, NA, NA, NA) > y en otra base de datos tengo:ID <- c(1,2,3)Fate_1 <- c(0, 0, 0, NA)Fate_2 > <- c(NA, 0, NA, NA) > Como podeis ver no todos los fates de todos los individuos tienen algun > valor, y lo que gustaria es juntarlo sin the haya NAs entre diferentes > Fates para cada fila, que es lo que me sucederia si hiciera un cbind entre > los dos data.frames. > Lo que se me habia ocurrido era hacer un cbind, que quedaria un resultado > como este:ID <- c(1,2,3,4)Fate_1 <- c(2,2,2,2)Fate_2 <- c(0,0,0,NA)Fate_3 > <- c(0, NA, NA, NA)Fate_1.Y <- c(0, 0, 0, NA)Fate_2.Y <- c(NA, 0, NA, NA) > y despues ir fila por fila haciendo algo similar a lo que seria en excel > de eliminar unas celdas y desplazar hacia la izquierda. Quedando las > ultimas filas como NA, y estando toda la informacion de los Fates seguida, > con el siguiente resultado: > ID <- c(1,2,3,4)Fate_1 <- c(2,2,2,2)Fate_2 <- c(0,0,0,NA)Fate_3 <- c(0, 0, > 0, NA)Fate_4 <- c(0, 0, NA, NA) > Alguien sabe como podria hacer esta eliminacion de celdas y desplazamiento > hacia la izquierda de manera automatica, u otra manera mejor para juntar > esta informacion? > Muchas gracias por adelantado, Un cordial saludo,Ruben > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Hola Victor, 
Antes de nada muchas gracias por la ayuda.
El problema de inner_join o left_join es que une los datos en base al ID que se
usa para hacer el merge, y que en mi caso seria el ID. Pero ello no me permite
eliminar para cada fila los NAs que haya en las distintas columnas, desplazando
las los registros localizados en variables a la derecha de esos NAs hacia las
celdas que han sido eliminadas por tener NA.
Disculpa si me he explacado mal, pero lo que quiero es juntar ambas bases de
datos, pero eliminando los NAs de cada fila desplazando para cada fila las
variables de la derecha, no quiero hacer una seleccion de los IDs que se juntan.
Siendo un poo mas concreto, el resultado que he puesto en el ejemplo tiene todos
los IDs, este mismo resultado lo hubiera tenido ejecutando left_join o un
full_join. Sin embargo si te fijas dentro de cada fila  o historia de cada
individuo, la informacion a lo largo de los fates es continua para el caso que
busco.
Poniendo como ejemplo la historia del individuo 2 "ID==2", ejecutando
un left_join o un full_join su historia de captura recaptura quedaria como:
2,0,NA,0,0y lo que quiero es que quede como:2,0,0,0,NA
El NA que queda entre las columnas con informacion ha sido eliminado y los
registros con informacion han sido desplazados hacia la izquierda.
Posteriormente las ultimas columnas adquieren el valor de NA.
Espero haber podido ser un poco mas concreto.
Muchas gracias por el interesUn cordial saludo, Ruben
 
From: victorgrandagarcia en gmail.com
Date: Mon, 29 Feb 2016 11:41:00 +0000
Subject: Re: [R-es] Juntar dos data.frames eliminando celdas con NA
To: ruben_bm en hotmail.com; r-help-es en r-project.org
Hola Rubén,
Echa un vistazo al paquete dplyr, si no recuerdo mal las funciones
"left_join" o "inner_join" hacen lo que quieres. Mira en
https://www.rstudio.com/wp-content/uploads/2015/02/data-wrangling-cheatsheet.pdf
para un vistazo rápido de lo que puede hacer y
https://cran.rstudio.com/web/packages/dplyr/vignettes/introduction.html para una
introducción más completa.Espero que te sirva, un saludo.
Víctor.
El lun., 29 feb. 2016 a las 12:36, Ruben Bermad (<ruben_bm en
hotmail.com>) escribió:
Hola a todos,
Quisiera juntar las informacion de dos data.frames con una union de columnas un
tanto especial. La informacion que tengo son datos de captura-recaptura de
diferentes individuos, por ejemplo en una base de datos tengo:ID <-
c(1,2,3,4)Fate_1 <- c(2,2,2,2)Fate_2 <- c(0,0,0,NA)Fate_3 <- c(0, NA,
NA, NA)
y en otra base de datos tengo:ID <- c(1,2,3)Fate_1 <- c(0, 0, 0, NA)Fate_2
<- c(NA, 0, NA, NA)
Como podeis ver no todos los fates de todos los individuos  tienen algun valor,
y lo que gustaria es juntarlo sin the haya NAs entre diferentes Fates para cada
fila, que es lo que me sucederia si hiciera un cbind entre los dos data.frames.
Lo que se me habia ocurrido era hacer un cbind, que quedaria un resultado como
este:ID <- c(1,2,3,4)Fate_1 <- c(2,2,2,2)Fate_2 <- c(0,0,0,NA)Fate_3
<- c(0, NA, NA, NA)Fate_1.Y <- c(0, 0, 0, NA)Fate_2.Y <- c(NA, 0, NA,
NA)
y despues ir fila por fila haciendo algo similar a lo que seria en excel de
eliminar unas celdas y desplazar hacia la izquierda. Quedando las ultimas filas
como NA, y estando toda la informacion de los Fates seguida, con el siguiente
resultado:
ID <- c(1,2,3,4)Fate_1 <- c(2,2,2,2)Fate_2 <- c(0,0,0,NA)Fate_3 <-
c(0, 0, 0, NA)Fate_4 <- c(0, 0, NA, NA)
Alguien sabe como podria hacer esta eliminacion de celdas y desplazamiento hacia
la izquierda de manera automatica, u otra manera mejor para juntar esta
informacion?
Muchas gracias por adelantado, Un cordial saludo,Ruben
        [[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
 		 	   		  
	[[alternative HTML version deleted]]
Carlos Ortega
2016-Feb-29  22:20 UTC
[R-es] Juntar dos data.frames eliminando celdas con NA
Hola, Del ejemplo que has puesto, no entiendo cómo generas el "Fate_3" y el "Fate_4" tras hacer ese ejercicio de poner los fates en columnas consecutivas. Adjunto cómo se dispone el ejemplo que comentas en Excel y claro no has indicado en el ejemplo ningún Fate_3 que permita obtener un Fate_3 <- c(0,0,0,NA) a partir del único que tienes Fate_3 <- c(0,NA,NA,NA). Gracias, Carlos. El 29 de febrero de 2016, 12:36, Ruben Bermad <ruben_bm en hotmail.com> escribió:> Hola a todos, > Quisiera juntar las informacion de dos data.frames con una union de > columnas un tanto especial. La informacion que tengo son datos de > captura-recaptura de diferentes individuos, por ejemplo en una base de > datos tengo:ID <- c(1,2,3,4)Fate_1 <- c(2,2,2,2)Fate_2 <- c(0,0,0,NA)Fate_3 > <- c(0, NA, NA, NA) > y en otra base de datos tengo:ID <- c(1,2,3)Fate_1 <- c(0, 0, 0, NA)Fate_2 > <- c(NA, 0, NA, NA) > Como podeis ver no todos los fates de todos los individuos tienen algun > valor, y lo que gustaria es juntarlo sin the haya NAs entre diferentes > Fates para cada fila, que es lo que me sucederia si hiciera un cbind entre > los dos data.frames. > Lo que se me habia ocurrido era hacer un cbind, que quedaria un resultado > como este:ID <- c(1,2,3,4)Fate_1 <- c(2,2,2,2)Fate_2 <- c(0,0,0,NA)Fate_3 > <- c(0, NA, NA, NA)Fate_1.Y <- c(0, 0, 0, NA)Fate_2.Y <- c(NA, 0, NA, NA) > y despues ir fila por fila haciendo algo similar a lo que seria en excel > de eliminar unas celdas y desplazar hacia la izquierda. Quedando las > ultimas filas como NA, y estando toda la informacion de los Fates seguida, > con el siguiente resultado: > ID <- c(1,2,3,4)Fate_1 <- c(2,2,2,2)Fate_2 <- c(0,0,0,NA)Fate_3 <- c(0, 0, > 0, NA)Fate_4 <- c(0, 0, NA, NA) > Alguien sabe como podria hacer esta eliminacion de celdas y desplazamiento > hacia la izquierda de manera automatica, u otra manera mejor para juntar > esta informacion? > Muchas gracias por adelantado, Un cordial saludo,Ruben > [[alternative HTML version deleted]] > > _______________________________________________ > 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 ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20160229/9ca13e07/attachment-0001.html> ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: Captura de pantalla 2016-02-29 a las 23.15.00.png Type: image/png Size: 14739 bytes Desc: no disponible URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20160229/9ca13e07/attachment-0001.png>
Hola, 
Perdonar por saltarme algun paso, pero a veces no me doy cuenta que yo lo tengo
muy claro porque soy el que tiene el problemay no termino de explicarlo del todo
jeje.
Ahora he adjuntado los pasos necesarios en excel para obtener el resultado que
quiero , serian 5 pasos: Quizas en R haya otra manera mas rapida.
1) Cargar las dos bases de datos (base de datos ver y base de datos azul)2)
Hacer un cbind en R3) Eliminar las celdas centrales con NA y correr los
registros hacia la izquierda. Los ultimos valores los he puesto en rojo ya que
son NAs nuevos que quedan por el desplazamiento de las celdasEsto es facil en
excel pero no se hacerlo en R4) Eliminar las columnas con todos sus registros
como NA5) Renombrar los fates desde el 1 hasta la columna que tenga valor
Lo que se me resiste es el paso 3. Sabes como hacer ese eliminacion de celdas en
R, u otro manera de hacer el join de esta informacion?
Muchas gracias, Saludos,Ruben
Date: Mon, 29 Feb 2016 23:20:25 +0100
Subject: Re: [R-es] Juntar dos data.frames eliminando celdas con NA
From: cof en qualityexcellence.es
To: ruben_bm en hotmail.com
CC: r-help-es en r-project.org
Hola,
Del ejemplo que has puesto, no entiendo cómo generas el "Fate_3" y el
"Fate_4" tras hacer ese ejercicio de poner los fates en columnas
consecutivas.
Adjunto cómo se dispone el ejemplo que comentas en Excel y claro no has indicado
en el ejemplo ningún Fate_3 que permita obtener un Fate_3 <- c(0,0,0,NA) a
partir del único que tienes Fate_3 <- c(0,NA,NA,NA).
Gracias,Carlos.
El 29 de febrero de 2016, 12:36, Ruben Bermad <ruben_bm en hotmail.com>
escribió:
Hola a todos,
Quisiera juntar las informacion de dos data.frames con una union de columnas un
tanto especial. La informacion que tengo son datos de captura-recaptura de
diferentes individuos, por ejemplo en una base de datos tengo:ID <-
c(1,2,3,4)Fate_1 <- c(2,2,2,2)Fate_2 <- c(0,0,0,NA)Fate_3 <- c(0, NA,
NA, NA)
y en otra base de datos tengo:ID <- c(1,2,3)Fate_1 <- c(0, 0, 0, NA)Fate_2
<- c(NA, 0, NA, NA)
Como podeis ver no todos los fates de todos los individuos  tienen algun valor,
y lo que gustaria es juntarlo sin the haya NAs entre diferentes Fates para cada
fila, que es lo que me sucederia si hiciera un cbind entre los dos data.frames.
Lo que se me habia ocurrido era hacer un cbind, que quedaria un resultado como
este:ID <- c(1,2,3,4)Fate_1 <- c(2,2,2,2)Fate_2 <- c(0,0,0,NA)Fate_3
<- c(0, NA, NA, NA)Fate_1.Y <- c(0, 0, 0, NA)Fate_2.Y <- c(NA, 0, NA,
NA)
y despues ir fila por fila haciendo algo similar a lo que seria en excel de
eliminar unas celdas y desplazar hacia la izquierda. Quedando las ultimas filas
como NA, y estando toda la informacion de los Fates seguida, con el siguiente
resultado:
ID <- c(1,2,3,4)Fate_1 <- c(2,2,2,2)Fate_2 <- c(0,0,0,NA)Fate_3 <-
c(0, 0, 0, NA)Fate_4 <- c(0, 0, NA, NA)
Alguien sabe como podria hacer esta eliminacion de celdas y desplazamiento hacia
la izquierda de manera automatica, u otra manera mejor para juntar esta
informacion?
Muchas gracias por adelantado, Un cordial saludo,Ruben
        [[alternative HTML version deleted]]
_______________________________________________
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
 		 	   		  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL:
<https://stat.ethz.ch/pipermail/r-help-es/attachments/20160301/9166ebee/attachment-0001.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: 1 DATASETS.PNG
Type: image/png
Size: 5710 bytes
Desc: no disponible
URL:
<https://stat.ethz.ch/pipermail/r-help-es/attachments/20160301/9166ebee/attachment-0005.png>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: 2 CBIND.PNG
Type: image/png
Size: 4053 bytes
Desc: no disponible
URL:
<https://stat.ethz.ch/pipermail/r-help-es/attachments/20160301/9166ebee/attachment-0006.png>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: 3 ELIMINAR CELDAS CENTRALES CON NA.PNG
Type: image/png
Size: 4393 bytes
Desc: no disponible
URL:
<https://stat.ethz.ch/pipermail/r-help-es/attachments/20160301/9166ebee/attachment-0007.png>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: 4 ELIMINAR LA S COLUMNAS CON TODOS SUS REGISTROS COMO NA.PNG
Type: image/png
Size: 3337 bytes
Desc: no disponible
URL:
<https://stat.ethz.ch/pipermail/r-help-es/attachments/20160301/9166ebee/attachment-0008.png>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: 5) RENOMBRAR LOS FATES.PNG
Type: image/png
Size: 2977 bytes
Desc: no disponible
URL:
<https://stat.ethz.ch/pipermail/r-help-es/attachments/20160301/9166ebee/attachment-0009.png>