foo <- function(x){ tmp <- as.character(x) tmp <- gsub("X", "", tmp) as.integer(tmp) }
road_accidents$Vehicle_Type <- foo(road_accidents$Vehicle_Type) Si estás con R, comienza por el principio: cómo se definen funciones y qué devuelven. Luego, qué son y cómo se opera con factores. Deja el %>% chachiguay para el final. Salud, Carlos J. Gil Bellosta http://www.datanalytics.com El sáb., 4 nov. 2017 a las 12:44, Alberto (<alpeda...@hotmail.com>) escribió: > Muchas gracias por contestar. > > Sigo sin conseguir resultados. He probado con lo que me has sugerido de > dos formas: > > get.integer3 <- function(x,y) > { > vector <- x$y > vector <- str_replace(vector, 'X', '') > vector <- as.integer(as.character(vector)) > x$y <- vector > } > > get.integer3 <- function(x,y) > { > vector <- x$y > vector <- as.character(vector) > vector <- str_replace(vector, 'X', '') > vector <- as.integer(vector) > x$y <- vector > } > > Realmente consigo que R haga lo que le pido con los comandos por separado: > > road_accidents$Vehicle_Type <- str_replace(road_accidents$Vehicle_Type, > 'X','') > road_accidents$Vehicle_Type <- as.integer(road_accidents$Vehicle_Type) > > Sin embargo, quiero implementar esto en una función para no tener que ir > variable por variable. > > Otra forma que se me ha ocurrido de hacerlo es obtener la posición que > ocupa la variable en el data frame para así, en vez de hacer referencia a > ella a través de x$y, llamar directamente a la columna mediante > road_accidents[,3*] (*por poner un ejemplo). El problema es que esto no se > como hacerlo. > > Un saludo. > ________________________________ > From: Francisco Rodríguez <fjr...@hotmail.com> > Sent: Friday, November 3, 2017 7:00 PM > To: Alberto; r-help-es@r-project.org > Subject: Re: [R-es] Problemas con función factor to integer > > Por lo que veo tus datos son factor, creo que primero debes transformarlos > a character. Saludos > > > > Enviado desde mi smartphone Samsung Galaxy. > > > -------- Mensaje original -------- > De: Alberto <alpeda...@hotmail.com> > Fecha: 3/11/17 18:20 (GMT+01:00) > Para: r-help-es@r-project.org > Asunto: [R-es] Problemas con función factor to integer > > Hola, > > estoy teniendo problemas para conseguir que mi funci�n haga lo que quiero. > Necesito que coja los valores de la variable que le indico, le quite la > letra que precede a dichos valores y los convierta en n�meros enteros. Dejo > un ejemplo de los datos que estoy tratando y de varias opciones de funci�n > con las que intento que funcione sin resultado. > > #Ejemplo > > head(road_accidents$Vehicle_Type,10) > [1] X2 X11 X11 X19 X11 X11 X11 X11 X11 X11 > Levels: X10 X11 X17 X19 X2 X20 X21 X3 X4 X5 X8 X9 X90 X97 X98 > > #Funci�n Prueba 1 > get.integer <- function(x) > { > road_accidents %>% > str_replace(road_accidents$x, 'X','') %>% > as.integer(road_accidents$x) > } > > #Funci�n Prueba 2 > get.integer2 <- function(dataframe, y) > { > vector <- str_replace(dataframe[,y], 'X', '') > vector <- as.integer(dataframe[,y]) > dataframe[,y] <- vector > } > > #Funci�n Prueba 3 > get.integer3 <- function(x,y) > { > vector <- x$y > vector <- str_replace(vector, 'X', '') > vector <- as.integer(vector) > x$y <- vector > } > > Gracias, un saludo. > > [[alternative HTML version deleted]] > > > [[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