<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    Clara y bien documentada la explicación de Gregorio, aunque el
    acercamiento de "usuario R", también podría funcional con alguna
    modificación. Aprovechando el trabajo de  Gregorio, muestro otra
    solución que no reordena el dataframe "yy".<br>
    <br>
    <tt>(xx <- data.frame(x=factor(c('a', 'b', 'c', 'd', 'e')),
      id.x=c(1:5)))<br>
      (yy <- data.frame(y=factor(c('e', 'e', 'b', 'c')), data=c(67,
      66, 66,66)))<br>
      <br>
      yy$id.x<-xx$id.x[match(yy$y,xx$x)]<br>
      <br>
      > yy<br>
        y data id.x<br>
      1 e   67    5<br>
      2 e   66    5<br>
      3 b   66    2<br>
      4 c   66    3<br>
      <br>
    </tt><br>
    El 31/01/2011 18:06, Gregorio R. Serrano escribió:
    <blockquote
      cite="mid:AANLkTimxvOwnZy=yE5BMVjXDBKXjwNmDZq8dUhYjN6hz@mail.gmail.com"
      type="cite">
      <pre wrap="">No sé si esto es lo que quieres:

</pre>
      <blockquote type="cite">
        <pre wrap="">(xx <- data.frame(x=factor(c('a', 'b', 'c', 'd', 'e')), id.x=c(1:5)))
</pre>
      </blockquote>
      <pre wrap="">  x id.x
1 a    1
2 b    2
3 c    3
4 d    4
5 e    5
</pre>
      <blockquote type="cite">
        <pre wrap="">(yy <- data.frame(y=factor(c('e', 'e', 'b', 'c')), data=c(67, 66, 66,
</pre>
      </blockquote>
      <pre wrap="">66)))
  y data
1 e   67
2 e   66
3 b   66
4 c   66
</pre>
      <blockquote type="cite">
        <pre wrap="">(merge(xx, yy, by.x="x", by.y="y"))
</pre>
      </blockquote>
      <pre wrap="">  x id.x data
1 b    2   66
2 c    3   66
3 e    5   67
4 e    5   66

Por mi parte, es la última vez que respondo en esta lista si quien pregunta
no facilita las cosas, como crear los df de ejemplo.

Un saludo
Gregorio R. Serrano



El 31 de enero de 2011 17:26, Usuario R <a class="moz-txt-link-rfc2396E" href="mailto:r.user.spain@gmail.com"><r.user.spain@gmail.com></a> escribió:

</pre>
      <blockquote type="cite">
        <pre wrap="">Hola erreros,

Tengo dos data frame, que no tienen ni el mismo numero de filas ni de
columnas. Uno de ellos tiene una columna con nombres largos. El otro sólo
contiene una lista de todos los posibles valores de esa columna y un
numero.
Es digamos una tabla sólo para identificar los nombres y poder trabajar con
los numeros en vez de con los nombres largos.

Un ejemplo muy corto sería:
data frame de identificadores:
x    id.x
a    1
b    2
c    3
d    4
e    5

Data frame de datos:
y    data
e    667766
e    666666
b    666666
c    666666


Lo que quiero es hacer una función que me cambie la columna y por los
numeros de la primera tabla. En este ejemplo sería:

y    data
5    667766
5    666666
2    666666
3    666666

Pensaba que me iba a funcionar esto:
attach( x )
attach( y )
id.x[  x %in% y ]

Pero igual hay alguna funcion que reemplaza valores de un data frame
en función del correspondiente de otro data frame. Comoceis alguna solución
sencilla?

Gracias, un saludo

       [[alternative HTML version deleted]]


_______________________________________________
R-help-es mailing list
<a class="moz-txt-link-abbreviated" href="mailto:R-help-es@r-project.org">R-help-es@r-project.org</a>
<a class="moz-txt-link-freetext" href="https://stat.ethz.ch/mailman/listinfo/r-help-es">https://stat.ethz.ch/mailman/listinfo/r-help-es</a>


</pre>
      </blockquote>
      <pre wrap="">

</pre>
      <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
R-help-es mailing list
<a class="moz-txt-link-abbreviated" href="mailto:R-help-es@r-project.org">R-help-es@r-project.org</a>
<a class="moz-txt-link-freetext" href="https://stat.ethz.ch/mailman/listinfo/r-help-es">https://stat.ethz.ch/mailman/listinfo/r-help-es</a>
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
+--------------------------------------------------------------
| Francisco J. Viciana Fernández
| Coordinador del Registro de Población
| Servicio de Estadísticas Demográficas y Sociales
| Instituto de Estadística de Andalucía
| Leonardo Da Vinci, nº 21. Isla de La Cartuja.
| 41071 SEVILLA.
| <a class="moz-txt-link-abbreviated" href="mailto:franciscoj.viciana@juntadeandalucia.es">franciscoj.viciana@juntadeandalucia.es</a>
| Tlf.: +(34) 95 503 38 21
+--------------------------------------------------------------
</pre>
  </body>
</html>