[R-es] Cruce Tablas

Carlos Ortega cof en qualityexcellence.es
Dom Jul 17 23:37:36 CEST 2016


Hola,

Puedes anidar dos funciones merge, pero la verdad es que queda poco
legible...

merge( merge(tabla2, tabla1, by.x="FECHA", by.y = c("FECHA.ALQUILER"),
all=T) , tabla1, by.x="FECHA", by.y = c("FECHA.DEVOLUCION"), all=T)

Guardar el resultado del primer "merge" en una variable y luego volver a
juntar esta variable con "tabla1" nuevamente, es decir, por separado; ayuda
a entender el proceso y seguro que al mantenimiento posterior.

Saludos,
Carlos Ortega
www.qualityexcellence.es

El 17 de julio de 2016, 13:32, jose luis <pepeceb en yahoo.es> escribió:

> Hola a todos
> al hilo de esta duda que planteé hace unos días, me surge otra.
> ¿Podría hacer este cruce en dos pasos sucesivos pero dentro de una misma
> orden?
> Es decir, que crucen primero la Fecha con la Fecha de alquiler, y luego,
> unicamente los que no cruzaron la primera vez, lo hagan ahora con Fecha
> Devolucion.
>
> merge(tabla2, tabla1, by.x="FECHA", by.y=c("FECHA.ALQUILER",
> "FECHA.DEVOLUCION"), all =T)
>
> Saludos !!!
>
>
>
> El Domingo 10 de julio de 2016 14:59, Carlos Ortega <
> cof en qualityexcellence.es> escribió:
>
>
> Hola,
>
> Siguiendo el mismo orden que tus preguntas.
>
>
>    1. Sí, puedes hacer el cruce sin cambiar el nombre de las variables.
>    Tienes que tener en cuenta que cuando cargas el data.frame en R, las
>    variables que en el nombre tengas varias palabras separadas por espacio R
>    cambiará el espacio por un punto (.).
>    2. Si miras la ayuda de "merge()" verás que no hay restricción a la
>    hora de definir una o varias variables para hacer el join. En el caso que
>    planteas sería merge(tabla2, tabla1, by.x="FECHA", by.y=c("FECHA.ALQUILER",
>    "FECHA.DEVOLUCION"), all =T)
>    3. En esta pregunta tendrías que definir qué es para ti "mejor". Si
>    las tablas no son grandes, con "merge()" tienes más que suficiente. Hay
>    otras alternativas desde las opciones que proporciona "dplyr", "sqldf" o el
>    mismo "data.table".
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
> El 10 de julio de 2016, 11:50, jose luis via R-help-es <
> r-help-es en r-project.org> escribió:
>
> Hola a todos.
> Tengo estas dos tablas de aqui (tabla1 y tabla2 la de abajo) aunque estan
> sin datos
>
>
>
> FECHA ALQUILER FECHA  DEVOLUCION PELICULA DIRECTOR CLIENTE
> FECHA CLIENTE DIRECCION NUMERO SOCIO CIUDAD
>
>
> Quiero cruzar ambas tablas en función de las fechas para ver los datos
> coincidentes
>
> Puedo hacerlo fácilmente, por ejemplo con merge tras haberle cambiado el
> nombre a FECHA ALQUILER por FECHA, y con la instruccion:
> merge (tabla1, tabla2, by="FECHA", all=T)
>
> Tengo algunas dudas:
>
> 1. ¿Podría hacer este cruce sin cambiarle el nombre a las variables?
>
> 2. ¿Podría hacer este cruce contra dos variables a la vez (la FECHA  de la
> tabla2 contra FECHA ALQUILER Y FECHA DEVOLUCION de una tacada)?
>
> 3. ¿Hay alguna alternativa mejor que "merge" para hacer este cruce?
>
> gracias y saludos
>
>
>
> Jose Luis Cebrian
>
> _______________________________________________
> 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
>
>
>


-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

	[[alternative HTML version deleted]]



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