Hola a tod en s, explico lo que estoy intentando hacer... Tengo un listado de url comprimidas de twitter, entre las cuales hay muchas repetidas, por lo que el número de registros llega a más de 15K. Por otro lado tengo otra lista de esas url únicas con su equivalente ya descomprimido llegando a un registro de 900. El problema que tengo es que estoy intentando hacer un loop para hacer la sustitución de la url comprimida por su equivalente descomprimido, pero no hay manera. Los datos que tengo son: url.origin$V1 es la lista de url originales (más de 15K) url.des$url1 es la lista de url originales únicas url.des$url2 es la lista de url descomprimidas equivalentes a url.des$url1 El último código con el que he probado es el siguiente pero sin buenos resultados: recoderFunc <- function(data, oldvalue, newvalue) { # convertir los factores en caracteres if (is.factor(data)) data <- as.character(data) if (is.factor(oldvalue)) oldvalue <- as.character(oldvalue) if (is.factor(newvalue)) newvalue <- as.character(newvalue) # crear el vector de retorno newvec <- data # poner los valores registrados en la posición correcta del vector de retorno for (i in unique(oldvalue)) newvec[data == i] <- newvalue[oldvalue == i] newvec } recoderFunc(url.origin$V1, url.des$url1, url.des$url2) Cualquier idea sobre como poder resolverlo u orientación por dónde podría ir será bienvenida. Muchas gracias de antemano. *Carlos Guadián Orta* Mi Twitter es @carlosguadian <http://twitter.com/carlosguadian> Mi blog es K-Government <http://www.k-government.com> Mi perfil profesional en LinkedIn <http://es.linkedin.com/in/carlosguadian> Trabajo en Autoritas Consulting <http://www.autoritas.es> Coordino #oGov <http://www.ogov.eu> Escribo en Sesión de Control <http://sesiondecontrol.com/author/carlosguadian/> [[alternative HTML version deleted]]
Hola, Salvo que lo esté entendiendo mal, con un "merge()" podrías solucionar el problema. urlGood <- merge(url.origen, url.des, by.x="V1", by.y="url1") "urlGood" sería un data.frame de 15K filas y como columnas todas las que tuviera "url.origen" y "url.des" pero pareadas la columna que las vincula: V1 y url1. ?Luego ya de "urlGood" extraes las filas/columnas que desees...? Saludos, Carlos Ortega www.qualityexcellence.es El 30 de abril de 2015, 13:00, Carlos Guadián Orta <carlosguadian en gmail.com> escribió:> Hola a tod en s, explico lo que estoy intentando hacer... > > Tengo un listado de url comprimidas de twitter, entre las cuales hay muchas > repetidas, por lo que el número de registros llega a más de 15K. > > Por otro lado tengo otra lista de esas url únicas con su equivalente ya > descomprimido llegando a un registro de 900. > > El problema que tengo es que estoy intentando hacer un loop para hacer la > sustitución de la url comprimida por su equivalente descomprimido, pero no > hay manera. > > Los datos que tengo son: > url.origin$V1 es la lista de url originales (más de 15K) > url.des$url1 es la lista de url originales únicas > url.des$url2 es la lista de url descomprimidas equivalentes a url.des$url1 > > > El último código con el que he probado es el siguiente pero sin buenos > resultados: > > recoderFunc <- function(data, oldvalue, newvalue) { > > # convertir los factores en caracteres > > if (is.factor(data)) data <- as.character(data) > if (is.factor(oldvalue)) oldvalue <- as.character(oldvalue) > if (is.factor(newvalue)) newvalue <- as.character(newvalue) > > # crear el vector de retorno > > newvec <- data > > # poner los valores registrados en la posición correcta del vector de > retorno > > for (i in unique(oldvalue)) newvec[data == i] <- newvalue[oldvalue == i] > > newvec > > } > > recoderFunc(url.origin$V1, url.des$url1, url.des$url2) > > Cualquier idea sobre como poder resolverlo u orientación por dónde podría > ir será bienvenida. > > Muchas gracias de antemano. > > > *Carlos Guadián Orta* > Mi Twitter es @carlosguadian <http://twitter.com/carlosguadian> > Mi blog es K-Government <http://www.k-government.com> > Mi perfil profesional en LinkedIn <http://es.linkedin.com/in/carlosguadian > > > Trabajo en Autoritas Consulting <http://www.autoritas.es> > Coordino #oGov <http://www.ogov.eu> > Escribo en Sesión de Control > <http://sesiondecontrol.com/author/carlosguadian/> > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Carlos genial!!! Muchas gracias *Carlos Guadián Orta* Mi Twitter es @carlosguadian <http://twitter.com/carlosguadian> Mi blog es K-Government <http://www.k-government.com> Mi perfil profesional en LinkedIn <http://es.linkedin.com/in/carlosguadian> Trabajo en Autoritas Consulting <http://www.autoritas.es> Coordino #oGov <http://www.ogov.eu> Escribo en Sesión de Control <http://sesiondecontrol.com/author/carlosguadian/> El 30 de abril de 2015, 14:56, Carlos Ortega <cof en qualityexcellence.es> escribió:> Hola, > > Salvo que lo esté entendiendo mal, con un "merge()" podrías solucionar el > problema. > > urlGood <- merge(url.origen, url.des, by.x="V1", by.y="url1") > > "urlGood" sería un data.frame de 15K filas y como columnas todas las que > tuviera "url.origen" y "url.des" pero pareadas la columna que las vincula: > V1 y url1. > > ?Luego ya de "urlGood" extraes las filas/columnas que desees...? > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > > El 30 de abril de 2015, 13:00, Carlos Guadián Orta < > carlosguadian en gmail.com> escribió: > >> Hola a tod en s, explico lo que estoy intentando hacer... >> >> Tengo un listado de url comprimidas de twitter, entre las cuales hay >> muchas >> repetidas, por lo que el número de registros llega a más de 15K. >> >> Por otro lado tengo otra lista de esas url únicas con su equivalente ya >> descomprimido llegando a un registro de 900. >> >> El problema que tengo es que estoy intentando hacer un loop para hacer la >> sustitución de la url comprimida por su equivalente descomprimido, pero no >> hay manera. >> >> Los datos que tengo son: >> url.origin$V1 es la lista de url originales (más de 15K) >> url.des$url1 es la lista de url originales únicas >> url.des$url2 es la lista de url descomprimidas equivalentes a url.des$url1 >> >> >> El último código con el que he probado es el siguiente pero sin buenos >> resultados: >> >> recoderFunc <- function(data, oldvalue, newvalue) { >> >> # convertir los factores en caracteres >> >> if (is.factor(data)) data <- as.character(data) >> if (is.factor(oldvalue)) oldvalue <- as.character(oldvalue) >> if (is.factor(newvalue)) newvalue <- as.character(newvalue) >> >> # crear el vector de retorno >> >> newvec <- data >> >> # poner los valores registrados en la posición correcta del vector de >> retorno >> >> for (i in unique(oldvalue)) newvec[data == i] <- newvalue[oldvalue == i] >> >> newvec >> >> } >> >> recoderFunc(url.origin$V1, url.des$url1, url.des$url2) >> >> Cualquier idea sobre como poder resolverlo u orientación por dónde podría >> ir será bienvenida. >> >> Muchas gracias de antemano. >> >> >> *Carlos Guadián Orta* >> Mi Twitter es @carlosguadian <http://twitter.com/carlosguadian> >> Mi blog es K-Government <http://www.k-government.com> >> Mi perfil profesional en LinkedIn < >> http://es.linkedin.com/in/carlosguadian> >> Trabajo en Autoritas Consulting <http://www.autoritas.es> >> Coordino #oGov <http://www.ogov.eu> >> Escribo en Sesión de Control >> <http://sesiondecontrol.com/author/carlosguadian/> >> >> [[alternative HTML version deleted]] >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> > > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es >[[alternative HTML version deleted]]