¿Cómo convertir factor a carácter en R?

En este artículo, discutiremos cómo convertir la clase de factor a la clase de caracteres en el lenguaje de programación R.

Método 1: convertir un vector de un solo factor en un vector de caracteres

Para convertir un vector de factor único en un vector de caracteres, usamos la función as.character() del lenguaje R y pasamos el vector de factor requerido como argumento. 

Sintaxis:

 character_vector <- as.character( Factor_vector )

Ejemplo:

Aquí, en este ejemplo, hemos convertido un vector de factores en un vector de caracteres usando la función as.character().

R

# create factor vector
Input <- factor(c("Geeks", "for", "Geek"))
  
# print input factor vector and its class
print("Input vector:")
Input
print("Input Data Class:")
class(Input)
  
# Convert factor vector to character vector
Output <- as.character(Input)
  
# print Output character vector and its class
print("Output vector:")
Output
print("Output Data Class:")
class(Output)

Producción:

Input vector:
Geeks for   Geek 
Input Data Class:
factor
Output vector:
 "Geeks" "for"   "Geek"
Output Data Class:
character

Método 2: convertir columnas de vectores de factores en columnas de vectores de caracteres en un marco de datos

Para convertir un vector de factor conocido en un vector de caracteres, creamos una copia duplicada del marco de datos de entrada. Luego use la función as.character() del lenguaje R y pase la columna de vector de factor requerida del marco de datos como argumento.

Sintaxis:

Salida$factor_vector_column <- as.character( Salida$factor_vector_column )

Ejemplo:

Aquí, en este ejemplo, hemos convertido una columna de vector de factores en una columna de vector de caracteres usando la función as.character().

R

# create factor vector
x <- factor(c("Geeks", "for", "Geek"))
y <- c(1,2,3)
Input <- data.frame( x, y )
  
# print input factor vector and its data Class
print("Input vector:")
Input
print("Input Data Class:")
class(Input$x)
  
# Convert factor vector to character vector
Output <- Input
Output$x <- as.character(Input$x)
  
# print Output character vector and its Class
print("Output vector:")
Output
print("Output Data Class:")
class(Output$x)

Producción:

Input vector:
      x y
1 Geeks 1
2   for 2
3  Geek 3
Input Data Class:
factor
Output vector:
      x y
1 Geeks 1
2   for 2
3  Geek 3
Output Data Class:
character

Método 3: convertir columnas de vectores de factores en columnas de vectores de caracteres en un marco de datos donde las columnas son desconocidas

Para convertir un vector de factor conocido en un vector de caracteres, creamos una copia duplicada del marco de datos de entrada. Luego use la instrucción condicional is.factor() para encontrar las columnas que tienen un factor de clase de datos. Luego use la función as.character() del lenguaje R y pase la columna de vector de factor identificado del marco de datos como un argumento.

Sintaxis:

factor_columns <- sapply(Output, is.factor)  
Output[factor_columns] <- lapply(Output[factor_columns], as.character)

Ejemplo:

Aquí, en este ejemplo, hemos convertido todas las columnas de vectores de factores en columnas de vectores de caracteres mediante el uso de la función as.character() identificada por la instrucción condicional is.factor().

R

# create Input dataframe
x <- factor(c("Geeks", "for", "Geek"))
y <- c(1,2,3)
z <- factor(c("Complete", "Interview", "Preparation"))
Input <- data.frame( x, y, z )
  
# print input data frame and its data Class
print("Input dataframe:")
Input
print("Input Data Class:")
sapply(Input, class) 
  
#Convert factor vector to character vector
Output <- Input                                          
factor_columns <- sapply(Output, is.factor)  
Output[factor_columns] <- lapply(Output[factor_columns], as.character)
  
# print Output character vector and its Class
print("Output dataframe:")
Output
print("Output Data Class:")
sapply(Output, class)

Producción:

Input dataframe:
      x y           z
1 Geeks 1    Complete
2   for 2   Interview
3  Geek 3 Preparation
Input Data Class:
        x         y         z  
"factor" "numeric"  "factor"  
Output dataframe:      
      x y           z
1 Geeks 1    Complete
2   for 2   Interview
3  Geek 3 Preparation
Output Data Class:
          x           y           z  
"character"   "numeric" "character"  

Método 4: convertir todas las columnas del marco de datos en caracteres

Para convertir todas las columnas del marco de datos en el carácter, usamos la función apply() con el parámetro as.character. La función lapply() aplica la función dada al marco de datos provisto.

Sintaxis:

dataframe <- lapply(dataframe, as.character)

Ejemplo:

Aquí, en este ejemplo, hemos convertido todas las columnas del marco de datos en columnas de vectores de caracteres usando la función as.character usando la función lapply().

R

# create Input dataframe
x <- c("Geeks", "for", "Geek")
y <- c(1,2,3)
z <- factor(c("Complete", "Interview", "Preparation"))
df <- data.frame( x, y, z )
  
# print input data frame and its data Class
print("Input dataframe:")
df
print("Input Data Class:")
sapply(df, class) 
  
#Convert all columns of data frame to character vector
df <- lapply(df, as.character)
  
# print Output character vector and its Class
print("Output dataframe:")
df
print("Output Data Class:")
sapply(df, class)

Producción:

Input dataframe:
      x y           z
1 Geeks 1    Complete
2   for 2   Interview
3  Geek 3 Preparation
Input Data Class:
          x           y           z  
"character"   "numeric"    "factor"  
Output dataframe:      
$x
[1] "Geeks" "for"   "Geek"  
$y
[1] "1" "2" "3"
$z
[1] "Complete"    "Interview"   "Preparation"
Output Data Class:
          x           y           z  
"character" "character" "character"  

Publicación traducida automáticamente

Artículo escrito por mishrapriyank17 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 *