[R-es] Juntar dos data.frames eliminando celdas con NA
Ruben Bermad
ruben_bm en hotmail.com
Mar Mar 1 11:17:52 CET 2016
Es perfectoMuchas gracias Luisfo!
Subject: Re: [R-es] Juntar dos data.frames eliminando celdas con NA
To: ruben_bm en hotmail.com; cof en qualityexcellence.es
CC: r-help-es en r-project.org
From: luisfo89 en yahoo.es
Date: Tue, 1 Mar 2016 11:07:12 +0100
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>
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
_______________________________________________
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