[R-es] Juntar dos data.frames eliminando celdas con NA
Luisfo
luisfo89 en yahoo.es
Mar Mar 1 11:07:12 CET 2016
Buenas Ruben,
Para el paso 3, lo que necesitas es mover los NAs al final (a la derecha).
#funcion push_nas: mueve los NA's al final del vector/fila (a la derecha)
push_nas <- function(vector){
nas.bool <- is.na(vector)
c(vector[which(!nas.bool)], vector[which(nas.bool)])
}
#aplicas la función push_nas a cada fila; suponiendo que tu tabla del
paso 2 se llama fates
data.frame(t(apply(fates, 1, push_nas)))
Espero que esto te sirva, no se me ocurre ninguna función automática.
Un saludo,
Luisfo
On 03/01/2016 10:50 AM, Ruben Bermad wrote:
> 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 R
> 3) 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 celdas
> Esto es facil en excel pero no se hacerlo en R
> 4) Eliminar las columnas con todos sus registros como NA
> 5) 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
> <mailto: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 <mailto:R-help-es en r-project.org>
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es <http://www.qualityexcellence.es>
>
>
> _______________________________________________
> 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