Discussion:
[R-es] Asignar distancias
Manuel Mendoza
2018-11-10 18:54:19 UTC
Permalink
Muy buenas. A ver si alguien puede echarme una mano.
A partir de una matriz de distancias de 29 x 29 he obtenido una df1.
Ahora tengo 841 filas con la distancia de cada combinación de esas 29
categorías.
Algo así como:

Var1 Var2 Dist
a a 0
a b 3
a c 5
b a 3
b b 0
b c 5
c ...

En otra df2, de 14563 filas, tengo las variables 1 y 2, y necesito
crear otra variable con la distancia que aparece en la df1.
Lo he intentado colapsando var1 y var 2 en ambas dfs, obteniendo 841
categorías en vez de 841 combinaciones de 29 categorías, pero no sé
cómo seguir.
Muchas gracias, como siempre,
Manuel






















































.
--
Dr Manuel Mendoza
Department of Biogeography and Global Change
National Museum of Natural History (MNCN)
Spanish Scientific Council (CSIC)
C/ Serrano 115bis, 28006 MADRID
Spain
José María Mateos
2018-11-10 22:42:49 UTC
Permalink
Post by Manuel Mendoza
Muy buenas. A ver si alguien puede echarme una mano.
A partir de una matriz de distancias de 29 x 29 he obtenido una df1.
Ahora tengo 841 filas con la distancia de cada combinación de esas 29
categorías.
Var1 Var2 Dist
a a 0
a b 3
a c 5
b a 3
b b 0
b c 5
c ...
En otra df2, de 14563 filas, tengo las variables 1 y 2, y necesito crear
otra variable con la distancia que aparece en la df1.
Si entiendo bien el problema, con la función merge tienes justo lo que
necesitas.

Saludos,
--
José María (Chema) Mateos || https://rinzewind.org/
Manuel Mendoza
2018-11-10 23:43:40 UTC
Permalink
Utilizo la función merge desde hace poco, pero no se me ocurre cómo
utilizarla para esto. Yo pienso que se puede hacer con una combinación
de ifelse-s pero no sé cómo. Seguro que hay más de una forma ce hacerlo.
Post by José María Mateos
Post by Manuel Mendoza
Muy buenas. A ver si alguien puede echarme una mano.
A partir de una matriz de distancias de 29 x 29 he obtenido una df1.
Ahora tengo 841 filas con la distancia de cada combinación de esas 29
categorías.
Var1 Var2 Dist
a a 0
a b 3
a c 5
b a 3
b b 0
b c 5
c ...
En otra df2, de 14563 filas, tengo las variables 1 y 2, y necesito crear
otra variable con la distancia que aparece en la df1.
Si entiendo bien el problema, con la función merge tienes justo lo que
necesitas.
Saludos,
--
José María (Chema) Mateos || https://rinzewind.org/
_______________________________________________
R-help-es mailing list
https://stat.ethz.ch/mailman/listinfo/r-help-es
--
Dr Manuel Mendoza
Department of Biogeography and Global Change
National Museum of Natural History (MNCN)
Spanish Scientific Council (CSIC)
C/ Serrano 115bis, 28006 MADRID
Spain
José María Mateos
2018-11-11 00:01:23 UTC
Permalink
Post by Manuel Mendoza
Utilizo la función merge desde hace poco, pero no se me ocurre cómo
utilizarla para esto. Yo pienso que se puede hacer con una combinación de
ifelse-s pero no sé cómo. Seguro que hay más de una forma ce hacerlo.
¿Sería esta la solución?
Post by Manuel Mendoza
df1 <- data.frame(Var1 = c('a', 'a', 'a'), Var2 = c('a', 'b', 'c'), Dist = c(0, 3, 4))
df2 <- data.frame(Var1 = c('a', 'a'), Var2 = c('c', 'b'))
df3 <- merge(df1, df2)
df3
Var1 Var2 Dist
1 a b 3
2 a c 4

Saludos,
--
José María (Chema) Mateos || https://rinzewind.org/
Manuel Mendoza
2018-11-11 10:01:13 UTC
Permalink
Fantástico, José María, facilísimo. Tuve que nombrar igual a las dos
variables en ambas dfs, y como hay otras variables, indicarle que
hiciera el merge en base a esas dos: df3 <- merge(df1, df2,
by=c("Var1", "Var2")).
Muchas gracias,
Manuel
Post by José María Mateos
Post by Manuel Mendoza
Utilizo la función merge desde hace poco, pero no se me ocurre cómo
utilizarla para esto. Yo pienso que se puede hacer con una combinación de
ifelse-s pero no sé cómo. Seguro que hay más de una forma ce hacerlo.
¿Sería esta la solución?
Post by Manuel Mendoza
df1 <- data.frame(Var1 = c('a', 'a', 'a'), Var2 = c('a', 'b', 'c'), Dist = c(0, 3, 4))
df2 <- data.frame(Var1 = c('a', 'a'), Var2 = c('c', 'b'))
df3 <- merge(df1, df2)
df3
Var1 Var2 Dist
1 a b 3
2 a c 4
Saludos,
--
José María (Chema) Mateos || https://rinzewind.org/
_______________________________________________
R-help-es mailing list
https://stat.ethz.ch/mailman/listinfo/r-help-es
--
Dr Manuel Mendoza
Department of Biogeography and Global Change
National Museum of Natural History (MNCN)
Spanish Scientific Council (CSIC)
C/ Serrano 115bis, 28006 MADRID
Spain
Loading...