[R-es] Problemas con función factor to integer

Carlos J. Gil Bellosta cgb en datanalytics.com
Sab Nov 4 13:31:45 CET 2017


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 (<alpedauye en 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 <fjroar en hotmail.com>
> Sent: Friday, November 3, 2017 7:00 PM
> To: Alberto; r-help-es en 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 <alpedauye en hotmail.com>
> Fecha: 3/11/17 18:20 (GMT+01:00)
> Para: r-help-es en 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 en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es