[R-es] Error al fusionar tablas
Buenas tardes, El problema está ya resuelto. Muchas gracias a todos por vuestra ayuda. El problema estaba en que la variable común con la que querÃa fusionar las dos tablas tenÃa espacios en blanco al final en una de las tablas y no en la otra. Por ello, parecÃa como que entre las dos tablas no hubiera coincidencias. Se ha solucionado eliminando el espacio en blanco de la columna en las dos tablas. El nombre de una tabla es "Reviews1" y el de la otra "Original.Reviewers". El nombre de la columna es "Reviewer.Username". Este serÃa el código:
#-------------------- library(stringr) Reviews1$fe_Reviewer.Username <- str_trim(Reviews1$Reviewer.Username, 'both') Original.Reviewers$fe_Reviewer.Username <- str_trim(Original.Reviewers$Reviewer.Username, 'both') res_end <- merge( Reviews1, Original.Reviewers, by.x="fe_Reviewer.Username", by.y="fe_Reviewer.Username", all.x=TRUE )
El Lun, 16 de Enero de 2017, 21:35, Carlos Ortega escribió:
Hola, Los data.frames *no* tienen porqué ser iguales en longitud, ni tan siquiera en el número de columnas. Para que al cruzar, te devuelva no sólo las filas comunes (una vez defines la columna común) si no todas, tienes que indicar el parámetro "*all=TRUE*", en el merge() como has hecho. Las filas de los dos data.frames que no tengan valores en columnas iguales, los completará con "NA". Mira el ejemplo de "merge()" en el epÃgrafe de "Details" en el último párrafo: *"In SQL database terminology, the default value of all = FALSE gives a natural join, a special case of an inner join. Specifying all.x = TRUE gives a left (outer) join, all.y = TRUE a right (outer) join, and both (all = TRUE a (full) outer join. DBMSes do not match NULL records, equivalent to incomparables = NA in R."* Saludos, Carlos Ortega www.qualityexcellence.es El 16 de enero de 2017, 20:20, jose luis via R-help-es < r-help-es en r-project.org> escribió:
Holabueno, aunque hay muchas posibilidades para fusionar ambas tablas,
usando la tuya serÃa algo asÃ:Df3<-merge(Df1,Df2,by="Reviewer.Username",
all = TRUE)
El Lunes 16 de enero de 2017 20:08, Jesús Para Fernández <
j.para.fernandez en hotmail.com> escribió:
Los data.frames para unirlos lo mejor es que tengan el mismo numero de
columnas o variables.
El dataframe2 tiene 17 y el 1 8.
Si solo quieres unir esa variable, pon:
nuevo.df<-rbind(Df1$Reviewer.Username,Df2$Reviewer.Username)
Si quieres crear un nuevo data.frame entero, tendras que poner en el
primer data.frame las variables del data.frame2 com ovacias:
Df1$variablefaltante1<-NA
Df1$variablefaltante2<-NA
.............................
y luego unir los data.frames
nuevo.df<-rbind(Df1,Df2)
Un saludo
Jesús
________________________________ De: R-help-es <r-help-es-bounces en r-project.org> en nombre de miriam.alzate en unavarra.es <miriam.alzate en unavarra.es> Enviado: lunes, 16 de enero de 2017 19:48 Para: r-help-es en r-project.org Asunto: [R-es] Error al fusionar tablas Buenas tardes, Estoy tratando de fusionar dos data.frames pero no obtengo lo deseado. Un data.frame (Df1)tiene 53.657 observaciones (y 8 variables) que pertenecen una a cada individuo de la muestra. El otro (Df2) tiene 63.987 observaciones (y 17 variables), de los 53.657 individuos previos porque algun individuo tiene varias observaciones. Ambos solo coinciden por la variable "Reviewer.Username". Quiero fusionar ambos data.frame por la columna "Reviewer.Username", pero la tabla resultante solo me da 76 observaciones, cuando realmente necesitarÃa tener 63.987 observaciones. Cada individuo de la muestra ha escrito 1 o más reviews, por eso puede que tenga más de una observación en el Df2, pero necesito que cada linea de este Df2 tenga asignados los datos pertenecientes a ese individuo del Df1. Hago el comando: Df3<-merge(Df1,Df2,by.x="Reviewer.Username") Pero me da solo 76 observaciones. ¿Me podéis ayudar? Muchas gracias _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es Página de Información de R-help-es<https://stat.ethz. ch/mailman/listinfo/r-help-es> stat.ethz.ch Esta es una lista de correo para solicitar ayuda sobre R en español y se entiende como un complemento social a la documentación, libros, etc. disponibles sobre R ... [[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 [[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