¿Cómo convertir caracteres a numéricos en R?(con ejemplos)

Podemos usar la siguiente sintaxis para convertir un vector de caracteres en un vector numérico en R:

numeric_vector <- as.numeric(character_vector)

Este tutorial proporciona varios ejemplos de cómo utilizar esta función en la práctica.

Ejemplo 1: Convertir un vector de carácter a numérico

Usaremos la función as.numeric, la cual nos permite rápidamente transformar un vector de caracteres a números.

El siguiente código muestra cómo convertir un vector de caracteres en un vector numérico:

 # Creamos un vector de caracteres
chars <- c('12', '14', '19', '22', '26')

# Convertimos el vector usando as.numeric
numbers <- as.numeric(chars)

# Mostramos el vector de numeros
numbers

[1] 12 14 19 22 26

# Confirmamos usando class
class(numbers)

[1] "numeric"

Ejemplo 2: Convertir una columna de carácter a numérico

El siguiente código muestra cómo convertir una columna específica en un marco de datos de carácter a numérico:

 #Creamos un data frame
df <- data.frame(a = c('12', '14', '19', '22', '26'),
                 b = c(28, 34, 35, 36, 40))

# Convertirmos la columna del data frame a numeros
df$a <- as.numeric(df$a)

# Mostramos el dataframe
df

   a  b
1 12 28
2 14 34
3 19 35
4 22 36
5 26 40

# Vemos la clase de la columna del data frame
class(df$a)

[1] "numeric"

Ejemplo 3: Convertir varias columnas de carácter a numérico

El siguiente código muestra cómo convertir todas las columnas de caracteres en un marco de datos de carácter a numérico:

# Creamos el data frame
df <- data.frame(a = c('12', '14', '19', '22', '26'),
                 b = c('28', '34', '35', '36', '40'),
                 c = as.factor(c(1, 2, 3, 4, 5)),
                 d = c(45, 56, 54, 57, 59))

# Mostramos la clase de cada columna
sapply(df, class)

          a           b           c           d 
"character" "character"    "factor"   "numeric" 

# Identificamos las columnas con caracteres
chars <- sapply(df, is.character)

# Convertimos las columnas identificadas a caracteres
df[ , chars] <- as.data.frame(apply(df[ , chars], 2, as.numeric))

# Mostramos la clase de las columnas del data frame
sapply(df, class)

        a         b         c         d 
"numeric" "numeric"  "factor" "numeric" 

Este código realizó los siguientes cambios en las columnas del marco de datos:

  • Columna a: de carácter a numérico
  • Columna b: de carácter a numérico
  • Columna c: Sin cambios (ya que era un factor)
  • Columna d: Sin cambios (ya que ya era numérica)

Al usar las funciones apply () y sapply () , pudimos convertir solo las columnas de caracteres en columnas numéricas y dejar todas las demás columnas sin cambios.

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario