Gracias Daniel por la "fusión" que has hecho de todas las respuestas dadas a mi pregunta inicial.

 

Recojo también tu código resumen a partir de las respuestas de Carlos y Jorge, recopilando bajo la matriz "out" un caso genérico que contemple "n" potenciales coincidencias.

 

 

 

Date: Fri, 7 Mar 2014 13:49:27 -0300
From: daniel319@gmail.com
To: javier.ruben.marcuzzi@gmail.com
CC: r-help-es@r-project.org
Subject: Re: [R-es] Identificar pares de valores en distintas filas



En lo personal, anoté en mi lista de utilitarios las respuestas de Carlos
Gil Bellosta y Jorge Velez uniéndolas como sigue:
 
d <- data.frame(ID = 1:8,
FECHA = c("01/04/1965", "01/09/1988", "01/04/2004", "01/04/1965",
"01/05/1992", "01/04/1965", "01/09/1988", "01/09/1988"),
VALOR = c(25578, 23456, 76578, 25578, 33724, 65789, 23456, 23456))
 
library(plyr)
res <- dlply(d, .(FECHA,VALOR), function(x) x$ID)
k <- length(res)
out <- t( sapply(res, function(x) x[1:k]))
out
 
Cuatro líneas cortas, fáciles de leer. Me gustó (significa que creo que
aprendí algo) el uso de plyr.
 
Daniel Merino
 
 
 
El 7 de marzo de 2014, 12:15, "Marcuzzi, Javier Rubén" <
javier.ruben.marcuzzi@gmail.com> escribió:
 
> Estimado Francisco
>
> Me parece bueno este script, en cosas como estas pensé yo cuándo sugerí
> que vuelva a leer R, porque mi experiencia de error cuándo comencé con R
> fue buscar una librería que resuelva mi problema cuándo en realidad
> tenía que aprender lo básico. Luego de enviar mi correo anterior pensé
> en que con otra redacción o algún ejemplo podría haber sido amable.
>
> Una forma distinta pero que podría funcionar es utilizar expand para
> crear una matriz con todas las posibilidades de fecha valor, luego
> recorrer buscando el índice donde coincide con el dato real,
> relacionando ambos, y el tercer paso sería ordenar (filtrar) por este
> índice donde estarían todos los que coinciden. Es más engorroso, pero
> podría funcionar si hay complicaciones.
>
> Javier Marcuzzi
>
> El 07/03/14 11:26, Jorge I Velez escribió:
> > Hola Francisco y Carlos,
> >
> > Quizas lo siguiente funcione para 2, 3 o mas IDs con FECHA y VALOR comun
> > (aqui el maximo es 3):
> >
> > d <- data.frame(ID = 1:8,
> > FECHA = c("01/04/1965", "01/09/1988", "01/04/2004", "01/04/1965",
> > "01/05/1992", "01/04/1965", "01/09/1988", "01/09/1988"),
> >   VALOR = c(25578, 23456, 76578, 25578, 33724, 65789, 23456, 23456))
> >
> > d$comb <- with(d, paste0(FECHA, "_", VALOR))
> > s <- with(d, split(d, comb))
> > s <- s[sapply(s, function(l) NROW(l) > 1)]   # mas de un ID
> > ids <- sapply(s, "[", 1)
> > k <- max(sapply(ids, length))   # maximo numero de IDs con FECHA/VALOR
> > comunes
> > out <- sapply(ids, function(x) x[1:k])
> > out <- t(out)
> > out
> > #                                 [,1] [,2] [,3]
> > #01/04/1965_25578.ID    1    4   NA
> > #01/09/1988_23456.ID    2    7    8
> >
> > El NA se genera porque en la 2a combinacion (FECHA = 01/09/1988, VALOR =
> > 23456) hay 3 IDs (2, 7 y 9)  y en la 1ra combinacion solo dos (1 y 4).
> >
> > Saludos,
> > Jorge.-
> >
> >
> > 2014-03-08 1:01 GMT+11:00 Carlos Ortega <cof@qualityexcellence.es>:
> >
> >> Hola,
> >>
> >> Sí, pensé en ello y puedes con el paquete "combinat" crear
> combinaciones de
> >> 3, 2 elementos donde cada elemento es una combinación de los strings
> >> "DATE-VALOR" (obtenidos con un unique) y sobre el resultado hacer un
> merge
> >> sobre los datos completos de tu data.frame igualmente con la combinación
> >> "DATE-VALOR"...
> >>
> >> Saludos,
> >> Carlos Ortega
> >> www.qualityexcellence.es
> >>
> >>
> >> El 7 de marzo de 2014, 14:39, Francisco Javier <iterador10@hotmail.com
> >>> escribió:
> >>> Muchas gracias a todos por vuestras respuestas! Me han sido de gran
> >> ayuda.
> >>>
> >>>
> >>> Carlos, tienes toda la razón con el tema de que podría haber casos
> >>> triplicados (de hecho los hay).
> >>>
> >>> Se me ocurre como solución "para salir del apuro" aplicar un intersect.
> >>>
> >>>
> >>>
> >>> Muchas gracias.
> >>>
> >>>
> >>>
> >>> Fco. Javier
> >>>
> >>>          [[alternative HTML version deleted]]
> >>>
> >>>
> >>> _______________________________________________
> >>> R-help-es mailing list
> >>> R-help-es@r-project.org
> >>> https://stat.ethz.ch/mailman/listinfo/r-help-es
> >>>
> >>>
> >>
> >> --
> >> Saludos,
> >> Carlos Ortega
> >> www.qualityexcellence.es
> >>
> >>          [[alternative HTML version deleted]]
> >>
> >>
> >> _______________________________________________
> >> R-help-es mailing list
> >> R-help-es@r-project.org
> >> https://stat.ethz.ch/mailman/listinfo/r-help-es
> >>
> >>
> >       [[alternative HTML version deleted]]
> >
> >
> >
> > _______________________________________________
> > R-help-es mailing list
> > R-help-es@r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
>         [[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
 
 
-- 
Daniel
 
	[[alternative HTML version deleted]]
 

_______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es 		 	   		  
	[[alternative HTML version deleted]]

