Re: [R-es] Quedarse con las muestras de una BD que están presentes otra, basado en dos variables

2020-06-27 Por tema Manuel Mendoza
Gracias Carlos, Xacobe y Emilio, resuelto.
Manuel

El sáb., 27 jun. 2020 a las 13:12, Carlos Ortega ()
escribió:

> OK.
> Entonces lo del merge debiera de ser así (fíjate en el orden de los
> data.frames y lo del all.x)
>
> df_unido <- merge(*df_pequeno, df_grande,* by.x =
> c('clave_1_de_df_pequeno', 'clave_2_de_df_pequeno') , by.y =
> c('clave_1_de_df_pequeno', 'clave_2_de_df_pequeno'), *all.x= TRUE*)
>
> Con esto del "all" lo que haces es definir un tipo de join. Y ahora lo que
> quieres hacer es un left_join sobre el pequeño.
> Al data.frame pequeño añadirle nuevas columnas, pero solo en las que
> coincida con long/lat con el grande. Y el resto de filas del "grande"
> ignorarlas.
>
> El sáb., 27 jun. 2020 a las 13:08, Manuel Mendoza (<
> mmend...@fulbrightmail.org>) escribió:
>
>> Hola Carlos, hago lo que indicas, o eso creo, y la df resultante tiene
>> tantas filas como la más grande, cuando tenía que ser al revés.
>> data tiene 15376 y Data7050 14563. Son celdas de un mapa, cada una con su
>> lon y su lat, y quiero quedarme con las que estan en Data7050 (la menor).
>> Todas están también en data, por lo que data2 debería tener  14563 muestras.
>>
>> data2 <- merge(Data7085,data,  by.x = c('lon', 'lat') , by.y = c('lon',
>> 'lat'), all = T)
>>
>> Lo que pusiste:
>> df_unido <- merge(df_uno, df_dos, by.x = c('clave_1_de_df_uno',
>> 'clave_2_de_df_uno') , by.y = c('clave_1_de_df_dos', 'clave_2_de_df_dos'),
>> all = TRUE)
>>
>> El sáb., 27 jun. 2020 a las 11:23, Carlos Ortega (<
>> c...@qualityexcellence.es>) escribió:
>>
>>> Hola Manuel,
>>>
>>> Es un problema que puedes solucionar perfectamente con la función
>>> "merge()" para juntar dos data.frames.
>>> En esa función no tienes porqué usar solamente una clave común que sirva
>>> para unir los dos data.frames, puedes usar varias claves.
>>>
>>> Esta sería la sintaxis:
>>>
>>> df_unido <- merge(df_uno, df_dos, by.x = c('clave_1_de_df_uno',
>>> 'clave_2_de_df_uno') , by.y = c('clave_1_de_df_dos', 'clave_2_de_df_dos'),
>>> all = TRUE)
>>>
>>> Y el "all = TRUE" del final, sirve para que solo te salgan los comunes
>>> en los dos grupos.
>>>
>>> Gracias,
>>> Carlos Ortega
>>> www.qualityexcellence.es
>>>
>>>
>>>
>>> El vie., 26 jun. 2020 a las 21:39, Manuel Mendoza (<
>>> mmend...@fulbrightmail.org>) escribió:
>>>
 Buenas tardes, quedarme con las muestras de una BD (data) que están
 presentes en otra (datax), cuando se tiene una variable que nunca se
 repite
 (Key) es fácil: data <- subset(data,data$Key %in% datax$Key).
 Mi problema es cuando la exclusividad viene dada por dos variables.
 P.e.,
 las coordenadas de un mapa: lon y lat.
 ¿Como puedo quedarme con las muestras de una df cuya lon y lat son
 iguales
 a la de otra?
 Gracias, como siempre,
 Manuel

 [[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
>>>
>>
>
> --
> 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


Re: [R-es] Quedarse con las muestras de una BD que están presentes otra, basado en dos variables

2020-06-27 Por tema Carlos Ortega
Hola Manuel,

Es un problema que puedes solucionar perfectamente con la función "merge()"
para juntar dos data.frames.
En esa función no tienes porqué usar solamente una clave común que sirva
para unir los dos data.frames, puedes usar varias claves.

Esta sería la sintaxis:

df_unido <- merge(df_uno, df_dos, by.x = c('clave_1_de_df_uno',
'clave_2_de_df_uno') , by.y = c('clave_1_de_df_dos', 'clave_2_de_df_dos'),
all = TRUE)

Y el "all = TRUE" del final, sirve para que solo te salgan los comunes en
los dos grupos.

Gracias,
Carlos Ortega
www.qualityexcellence.es



El vie., 26 jun. 2020 a las 21:39, Manuel Mendoza (<
mmend...@fulbrightmail.org>) escribió:

> Buenas tardes, quedarme con las muestras de una BD (data) que están
> presentes en otra (datax), cuando se tiene una variable que nunca se repite
> (Key) es fácil: data <- subset(data,data$Key %in% datax$Key).
> Mi problema es cuando la exclusividad viene dada por dos variables. P.e.,
> las coordenadas de un mapa: lon y lat.
> ¿Como puedo quedarme con las muestras de una df cuya lon y lat son iguales
> a la de otra?
> Gracias, como siempre,
> Manuel
>
> [[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


Re: [R-es] Quedarse con las muestras de una BD que están presentes otra, basado en dos variables

2020-06-27 Por tema Emilio L. Cano
Hola,

Yo lo haría con dplyr::left_join()

https://dplyr.tidyverse.org/articles/two-table.html

Un saludo,

Emilio L. Cano
http://emilio.lcano.com



> El 26 jun 2020, a las 21:38, Manuel Mendoza  
> escribió:
> 
> Buenas tardes, quedarme con las muestras de una BD (data) que están
> presentes en otra (datax), cuando se tiene una variable que nunca se repite
> (Key) es fácil: data <- subset(data,data$Key %in% datax$Key).
> Mi problema es cuando la exclusividad viene dada por dos variables. P.e.,
> las coordenadas de un mapa: lon y lat.
> ¿Como puedo quedarme con las muestras de una df cuya lon y lat son iguales
> a la de otra?
> Gracias, como siempre,
> Manuel
> 
>   [[alternative HTML version deleted]]
> 
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] Quedarse con las muestras de una BD que están presentes otra, basado en dos variables

2020-06-27 Por tema Xacobe Abel Fernández García
Puedes crear una variable única que sirva de clave.

Por ejemplo: lon*1 + lat

La transformación lineal de una de las variables es para evitar que se
solapen cuando se sumen.

Lon: 54,24 ; Lat: 30,00; suma: 84,24; clave: 542430,00
Lon: 30.00 ; Lat: 54,24; suma: 84,24; clave: 300054,24

Espero que te sirva la idea.

Un saludo

O 21:38, ven., 26/06/2020, Manuel Mendoza 
escribiu:

> Buenas tardes, quedarme con las muestras de una BD (data) que están
> presentes en otra (datax), cuando se tiene una variable que nunca se repite
> (Key) es fácil: data <- subset(data,data$Key %in% datax$Key).
> Mi problema es cuando la exclusividad viene dada por dos variables. P.e.,
> las coordenadas de un mapa: lon y lat.
> ¿Como puedo quedarme con las muestras de una df cuya lon y lat son iguales
> a la de otra?
> Gracias, como siempre,
> Manuel
>
> [[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