[R-es] Juntar dos data.frames eliminando celdas con NA

Víctor Granda García victorgrandagarcia en gmail.com
Lun Feb 29 14:46:05 CET 2016


Ah!, lo siento entonces, leí rápido y no entendí bien lo que querías hacer.
Supongo que con el paquete data.table puedas hacer algo parecido, pero no
tengo claro cómo, siento no ser de mucha ayuda.

Un saludo!


El lun., 29 feb. 2016 a las 13:04, Ruben Bermad (<ruben_bm en hotmail.com>)
escribió:

> 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,0
> y 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 interes
> Un 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]]



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