Skip to content

[R-es] Uso de merge

5 messages · Antonio Rodriguez Andres, Javier Marcuzzi, jose luis

#
Hola usuarios de R

Estoy tratando de usar merge, para dos data frame, sin embargo al usarlo me
da resultado correcto, en términos de emparejamiento de pais y año, pero lo
que me hace es que el dataframe *y* me hace como un append por filas. Las
variables comunes son país y año. Alguna sugerencia?


combine = merge(sub_kei, knowledge, by = common_col_names, all.x = TRUE,
all.y = TRUE)
Saludos
#
Holaprueba conlibrary(dplyr)combine <- full_join(sub_kei, knowledge) 

    El Lunes 25 de marzo de 2019 19:49, Antonio Rodriguez Andres <antoniorodriguezandres70 en gmail.com> escribió:
 

 Hola usuarios de R

Estoy tratando de usar merge, para dos data frame, sin embargo al usarlo me
da resultado correcto, en términos de emparejamiento de pais y año, pero lo
que me hace es que el dataframe *y* me hace como un append por filas. Las
variables comunes son país y año. Alguna sugerencia?


combine = merge(sub_kei, knowledge, by = common_col_names, all.x = TRUE,
all.y = TRUE)
Saludos
#
Jose Luis

Column `Country` joining factors with different levels, coercing to
character vector

common_col_names <- intersect(names(sub_kei), names(knowledge))
[1] "Country" "Year"

nrow(sub_kei) <- 132
nrow(knowledge) <- 3864

Tiene distinto numero de pais como de año, en el sub_kei aparecen 5 años y
en el otro dataset (knowledge) datos anuales de 1995 a 2017. Yo quiero que
el merge dataset aparezcan todos los años

 countrylist <-unique(sub_kei$Country)
[1] Argentina            Brazil               Colombia             China
              Czech Republic
 [6] Greece               Hungary              India
Indonesia            Israel
[11] Malaysia             Mexico               Pakistan             Peru
             Philippines
[16] Poland               Qatar                Russian Federation   Saudi
Arabia         Thailand
[21] Turkey               United Arab Emirates
22 Levels: Argentina Brazil China Colombia Czech Republic Greece Hungary
India Indonesia Israel ... United Arab Emirates
On Mon, 25 Mar 2019 at 22:08, jose luis <pepeceb en yahoo.es> wrote:

            

  
    
#
Estimado Antonio Rodriguez

No comprendo el problema por su forma de redactar, pero se me ocurre que el
problema posiblemente esté en los datos. ¿Cuál es su forma de datos
originales y cuantos son?, ¿Es posible llevarlos a una base de datos?
Porque se me ocurre que pueden tener un error de integridad referencial, o
una simple consulta con un asistente gráfico de cualquier base de datos
podría dar los resultados que busca, lógicamente no en R, pero si no hay
errores en los datos se podría investigar un poco el problema de R. No es
exactamente lo mismo un JOIN, con el mezclar las tablas o data.frames,
pienso en un diagrama de Benz, la parte superpuesta de los dos círculos,
posiblemente usted busque algo más y no sería exactamente la consulta (a mi
me paso el realizar consultas que escribí mal).

Javier Rubén Marcuzzi

El lun., 25 mar. 2019 a las 18:25, Antonio Rodriguez Andres (<
antoniorodriguezandres70 en gmail.com>) escribió:

  
  
#
Antonio, yo creo que con la instrucción full_join te deberían aparecer todos los años(los que no estén presentes en ambas matrices saldrán con muchos NAs). El mensaje que te sale (Column `Country` joining factors with different levels, coercing to character vector) creo que es porque la variable Country esta en diferente formato y no "se reconocen". Prueba a ponerlas en las dos tablas como factor a ver si te cruzan.  

    El Lunes 25 de marzo de 2019 23:57, Javier Marcuzzi <javier.ruben.marcuzzi en gmail.com> escribió:
 

 Estimado Antonio Rodriguez
No comprendo el problema por su forma de redactar, pero se me ocurre que el problema posiblemente esté en los datos. ¿Cuál es su forma de datos originales y cuantos son?, ¿Es posible llevarlos a una base de datos? Porque se me ocurre que pueden tener un error de integridad referencial, o una simple consulta con un asistente gráfico de cualquier base de datos podría dar los resultados que busca, lógicamente no en R, pero si no hay errores en los datos se podría investigar un poco el problema de R. No es exactamente lo mismo un JOIN, con el mezclar las tablas o data.frames, pienso en un diagrama de Benz, la parte superpuesta de los dos círculos, posiblemente usted busque algo más y no sería exactamente la consulta (a mi me paso el realizar consultas que escribí mal).
Javier Rubén Marcuzzi
El lun., 25 mar. 2019 a las 18:25, Antonio Rodriguez Andres (<antoniorodriguezandres70 en gmail.com>) escribió:

Jose Luis

Column `Country` joining factors with different levels, coercing to
character vector

common_col_names <- intersect(names(sub_kei), names(knowledge))
[1] "Country" "Year"

nrow(sub_kei) <- 132
nrow(knowledge) <- 3864

Tiene distinto numero de pais como de año, en el sub_kei aparecen 5 años y
en el otro dataset (knowledge) datos anuales de 1995 a 2017. Yo quiero que
el merge dataset aparezcan todos los años

 countrylist <-unique(sub_kei$Country)
 [1] Argentina            Brazil               Colombia             China
              Czech Republic
 [6] Greece               Hungary              India
Indonesia            Israel
[11] Malaysia             Mexico               Pakistan             Peru
             Philippines
[16] Poland               Qatar                Russian Federation   Saudi
Arabia         Thailand
[21] Turkey               United Arab Emirates
22 Levels: Argentina Brazil China Colombia Czech Republic Greece Hungary
India Indonesia Israel ... United Arab Emirates
On Mon, 25 Mar 2019 at 22:08, jose luis <pepeceb en yahoo.es> wrote: