Aún más sencillo:


road_accidents$Vehicle_Type <- as.integer(gsub("X","",(road_accidents$Vehicle_Type)))

road_accidents$Vehicle_Type



El 04/11/2017 a las 14:54, Carlos Ortega escribió:
Otra forma, aunque sean varias funciones anidadas:

library(stringr)
datin <- as.factor(c('X2' , 'X23', 'X14', 'X19', 'X18', 'X11', 'X11',
'X11', 'X11', 'X11'))
res   <- as.numeric(str_replace_all(as.vector(datin), "X",""))
res
  [1]  2 23 14 19 18 11 11 11 11 11

Saludos,
Carlos Ortega
www.qualityexcellence.es

El 3 de noviembre de 2017, 18:20, Alberto <[email protected]> escribió:

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]]


_______________________________________________
R-help-es mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-help-es




--
Marcelino de la Cruz Rot
Depto. de Biología y Geología
Física y Química Inorgánica
Universidad Rey Juan Carlos
Móstoles España

_______________________________________________
R-help-es mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-help-es

Responder a