Hola,

He planteado el bucle de otra forma y si lo he entendido bien, hace lo que
buscas

> > neig<-c(8,8, 8, 2,5,  5,  8,  8,  8,  8,  8,  2,  8, 12,  5, 12, 12,  5, 11, 13,  7,  7, 14, 14, 13,  12, 12, +         14, 14 ,14,  8,  6, 12,  8,  5,  8,  5,  5, 13,  8, 12,  5,  8,  5,  5,  3,  6)> > e.or<-c(1,  6,  8, 12, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24)> > n.et<-0> for(i in 1:length(neig)) {+   n.et[i]<-e.or[neig[i]]+   }> > n.et [1] 17 17 17  6 14 14 17 17 17 17 17  6 17 22 14 22 22 14 21 23 16 16 24
[24] 24 23 22 22 24 24 24 17 15 22 17 14 17 14 14 23 17 22 14 17 14 14  8
[47] 15


>



Saludos,
Carlos Ortega
www.qualityexcellence.es

El 4 de enero de 2012 10:07, <Guillermo.Vinue@uv.es> escribió:

> Hola,
>
> Tengo un vector llamado “neig” y querría sustituir sus valores dados por
> el vector “etiqs_nuevas”, por los valores de “etiqs_orig” que ocupen la
> misma posición.
>
> Por ejemplo, si neig[1] es un 8, lo reemplazaría por el valor 17 porque
> el valor 17 ocupa la misma posición en “etiqs_orig” que el valor 8 en
> “etiqs_nuevas”.
>
> >neig
> [1] 8  8  8  2  5  5  8  8  8  8  8  2  8 12  5 12 12  5 11 13  7  7 14
> 14 13
>  12 12 14 14 14  8  6 12  8  5  8  5  5 13  8 12  5  8  5  5  3  6
>
>
> >etiqs_nuevas
>
> [1] 1  2  3  4  5  6  7  8  9 10 11 12 13 14
>
>
> >etiqs_orig
>
> [1] 1  6  8 12 14 15 16 17 18 20 21 22 23 24
>
>
> He hecho el siguiente bucle for, pero me encuentro ante un problema.
>
> for(i in 1:length(etiqs_orig)){
>
>  neig[neig == etiqs_nuevas[i]] <- etiqs_orig[i]
>
> }
>
> Se trata de que por ejemplo, para i=2, el valor 2 se me transforma en un
> 6 que es lo que quiero, pero cuando i=6, ese valor 6 surgido de
> sustituir a 2 se me transforma en un 15.
> Por tanto, el valor 2 finalmente aparece sustituido por el valor 15,
> cuando yo querría que fuera el valor 6.
>
> ¿Cómo podría escribir que un valor ya sustituido no se vuelva a
> sustituir?, ¿alguien conoce una forma rápida de hacerlo?, si no, creo
> que me veo obligado a escribir muchas líneas de código.
>
> También he probado con la función replace pero no me da el resultado que
> necesito.
>
> replace(neig,etiqs_nuevas,etiqs_orig)
>
>
> Muchas gracias de antemano y feliz año a tod@s.
>
> Un saludo,
>
> Guillermo
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>

	[[alternative HTML version deleted]]

