Foro de debate

Combinar filas en un data frame

Combinar filas en un data frame

de Diana Barrera -
Número de respuestas: 1

Hola, necesito ayuda.

Tengo un data frame con los siguientes datos

animal   sexo  padre  madre  peso1   peso2   peso3

301         M       51       32        30          NA        250

301         M       51       32        NA        170        NA

301         M       87       54        45           NA       189

Los dos primeros animales son el mismo, por lo tanto necesito unirlos en una sola fila. 

Gracias de antemano.

En respuesta a Diana Barrera

Re: Combinar filas en un data frame

de Franz Jimeno -

Hola,

yo lo haría así. Utilizo el paquete "dplyr".  Utiliza install.packages("dplyr") si no tienes instalado este paquete.

Considero que se trata del mismo animal si tiene las variables animal, sexo, padre y madre iguales (es lo que selecciono con group_by).

 

library(dplyr)

data <- data.frame(animal=c(301, 301, 301), sexo=c("M","M","M"), padre=c(51,51,87),
madre=c(32,32,54), peso1=c(30,NA,45), peso2=c(NA, 170, NA), peso3=c(250,NA ,189) )

group_by(data, animal, sexo, padre, madre) %.% summarize(peso1=max(peso1, na.rm = TRUE), peso2=min(peso2, na.rm=TRUE), peso3=min(peso3, na.rm=TRUE))

 

Un saludo,

 

Franz