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 ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20160710/9825d7aa/attachment-0001.html> ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: cruce tablas.xlsx Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Size: 9307 bytes Desc: no disponible URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20160710/9825d7aa/attachment-0001.bin>
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 [[alternative HTML version deleted]]
Hola a todosal 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. - 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 (.). - 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) - 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 Ortegawww.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 [[alternative HTML version deleted]]