[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