¿Cómo convertir columnas de marco de datos de factores a caracteres en R?

En este artículo, discutiremos cómo convertir columnas de marcos de datos de factores a caracteres en el lenguaje de programación R. Un marco de datos puede tener diferentes tipos de columnas apiladas para formar una estructura tubular. La modificación fácil de los datos de las columnas, así como la conversión entre tipos de datos, se puede realizar a través de un marco de datos. R Language nos proporciona una variedad de métodos para simular la conversión de tipos de datos de las columnas del marco de datos: 

Método 1: Usar el método transform()

El método transform() se puede usar para simular la modificación en el objeto de datos especificado en la lista de argumentos de este método. Los cambios deben guardarse explícitamente en el mismo marco de datos o en uno nuevo. Este método se puede utilizar para agregar nuevas variables a los datos o modificar las existentes.

Sintaxis: transformar (datos, valor)

Argumentos:

  • data : El objeto de datos a modificar
  • value : El valor que se agregará

Inicialmente, la clase del col3 del marco de datos devuelto por el método sapply() es un factor, que cambia al carácter, al aplicar el método transform(). Los datos se conservan durante esta transformación. 

Ejemplo:

R

# declare a dataframe
# different data type have been
# indicated for different cols
data_frame <- data.frame(
                col1 = as.character(6:9), 
                col2 = factor(4:7), 
                col3 = factor(letters[1:4])
                )
  
print("Original DataFrame")
print (data_frame)
  
# indicating the data type of each 
# variable 
sapply(data_frame, class)
  
# converting factor type column to
# character
data_frame_col3 <- transform(
  data_frame, col3 = as.character(col3))
  
print("Modified col5 DataFrame")
print (data_frame_col3)
  
# indicating the data type of each variable 
sapply(data_frame_col3, class)

Producción

[1] "Original DataFrame"
 col1 col2 col3
1    6    4    a
2    7    5    b
3    8    6    c
4    9    7    d
   col1     col2     col3
"factor" "factor" "factor"
[1] "Modified col5 DataFrame"
 col1 col2 col3
1    6    4    a
2    7    5    b
3    8    6    c
4    9    7    d
      col1        col2        col3
  "factor"    "factor" "character" 

Método 2: Usar el paquete dplyr

El paquete dplyr se utiliza para realizar manipulaciones y abstracciones de datos. Es un hijo del paquete tidyverse que proporciona una gran cantidad de funciones integradas. Se puede usar para realizar mutaciones de datos, usando el método mutate_at() donde se agregan variables adicionales en función de las variables existentes. 

Sintaxis: mutate_at(.data, .vars, .funs)

Argumentos: 

  • .data : Los datos a modificar
  • .var : La variable a modificar
  • .funs : La función a aplicar sobre la variable a modificar.

Inicialmente, la clase de col2 del marco de datos devuelto por el método sapply() es un factor, que cambia al carácter, al aplicar el método mutate_at(). Los datos se conservan durante esta transformación. 

Ejemplo:

R

# declare a dataframe
# different data type have been
# indicated for different cols
library(dplyr)
data_frame <- data.frame(
  "col1" = as.character(6:9), 
  "col2" = factor(4:7), 
  "col3" = factor(letters[1:4])
)
  
print("Original DataFrame")
print (data_frame)
  
# indicating the data type of 
# each variable 
sapply(data_frame, class)
  
# converting factor type column 
# to character
data_frame <- data_frame%>%mutate_at(
  "col2", as.character)
  
print("Modified col2 DataFrame")
print (data_frame)
  
# indicating the data type of 
# each variable 
sapply(data_frame, class)

Producción

[1] "Original DataFrame" 
> print (data_frame)   
  col1 col2 col3 
1    6    4    a
2    7    5    b 
3    8    6    c 
4    9    7    d 
col1     col2     col3  
"factor" "factor" "factor"  
[1] "Modified col2 DataFrame" 
   col1 col2 col3
1    6    4    a 
2    7    5    b 
3    8    6    c 
4    9    7    d        
col1        col2        col3     
"factor" "character"    "factor" 

Método 3: Usar el método lapply()

El método lapply en R se aplica para operaciones en objetos de lista y devuelve un objeto de lista de la misma longitud que el objeto de lista de entrada. Cada elemento de esta lista de salida es el resultado de la aplicación de FUN a cada uno de los elementos de la lista.

Sintaxis: lapply(X, DIVERSIÓN, …)

Argumentos: 

  • df: el objeto de marco de datos para realizar modificaciones.
  • FUN: La función que se aplicará a cada elemento del marco de datos.

el método lapply() devuelve un objeto de lista de vectores en R. Sin embargo, guardamos la salida de este resultado en el objeto de lista de la variable de marco de datos, que es data_frame[], que convierte la lista implícitamente en un marco de datos, eliminando la necesidad de un marco de datos explícito. conversión. Aplica la transformación de columnas de factores a caracteres en todo el marco de datos. Por lo tanto, todos los tipos de columna cambian al carácter.

Ejemplo:

R

# declare a dataframe
# different data type have been
# indicated for different cols
data_frame <- data.frame(
                col1 = as.character(6:9), 
                col2 = factor(c('tzx','hi','gfg','cse')), 
                col3 = factor(letters[1:4])
                )
  
print("Original DataFrame")
print (data_frame)
  
# indicating the data type of each 
# variable 
sapply(data_frame, class)
  
# converting factor type column to 
# character
data_frame[] <-lapply(data_frame, as.character)
print("Modified col5 DataFrame")
print (data_frame)
  
# indicating the data type of each variable 
sapply(data_frame, class)

Producción

[1] "Original DataFrame"
 col1 col2 col3
1    6  tzx    a
2    7   hi    b
3    8  gfg    c
4    9  cse    d
   col1     col2     col3
"factor" "factor" "factor"
[1] "Modified col5 DataFrame"
 col1 col2 col3
1    6  tzx    a
2    7   hi    b
3    8  gfg    c
4    9  cse    d
      col1        col2        col3
"character" "character" "character" 

Publicación traducida automáticamente

Artículo escrito por mallikagupta90 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *