Conversión de tipos de datos en R

Requisito previo: tipos de datos en R

La conversión de tipos de datos es el proceso de convertir un tipo de datos en otro tipo de datos. El lenguaje de programación R tiene solo 3 tipos de datos: numérico, lógico y de caracteres. En este artículo vamos a ver cómo convertir el tipo de datos en el lenguaje de programación R

Dado que R es un lenguaje de tipo débil o de tipo dinámico, el lenguaje R crea automáticamente tipos de datos en función de los valores asignados a la variable. Vemos un atisbo de esto en el siguiente código:

R

# value assignment
name <- "GeeksforGeeks"
age <- 20
pwd <- FALSE
  
# type checking
typeof(name)
typeof(age)
typeof(pwd)

Producción:

[1] "character"
[1] "double"
[1] "logical"

Hemos utilizado la función typeof(value) para comprobar el tipo de los valores asignados a las variables en el código anterior.

Conversión de tipos de datos en R

Numérico o carácter a tipo lógico:

Cualquier valor numérico que no sea 0 , en la conversión a tipo lógico se convierte en VERDADERO. Aquí «20» es un valor numérico distinto de cero. Por lo tanto, se convierte en TRUE .  

«FALSO» es un tipo de carácter que en la conversión se convierte en FALSO de tipo lógico. Las comillas dobles se eliminan en la conversión del tipo de carácter al tipo lógico.

Sintaxis: as.logical(valor)

Ejemplo:

R

# value assignment
age <- 20
pwd <- "FALSE"
  
# Converting type
as.logical(age)
as.logical(pwd)

Producción:

[1] TRUE
[1] FALSE

Numérico o lógico a tipo de carácter:

Cualquier valor de tipo de carácter siempre se incluye entre comillas dobles ( ” “ ). Por lo tanto, la conversión de 20 de tipo numérico se convierte en «20» de tipo de carácter. De manera similar, convertir el FALSO de tipo lógico en tipo de carácter nos da «FALSO».

Sintaxis: as.character(valor)

Ejemplo:

R

# value assignment
age <- 20
pwd <- FALSE
  
# Converting type
as.character(age)
as.character(pwd)

Producción:

[1] "20"
[1] "FALSE"

Carácter o lógico a tipo numérico:

Sintaxis: as.numeric(valor)

 «20» de tipo de carácter al convertirse a tipo numérico se convierte en 20, solo se eliminaron las comillas dobles. Conversión de tipo Lógico a Numérico, FALSO->0 y VERDADERO->1.

Ejemplo:

R

# value assignment
age <- "20"
pwd <- FALSE
  
# Converting type
as.numeric(age)
as.numeric(pwd)

Producción:

[1] 20
[1] 0

Vectores a array:

En el código a continuación, hemos convertido 2 vectores de muestra en una sola array usando la sintaxis a continuación. Los elementos de los vectores se llenan en orden de Fila mayor.

Sintaxis : rbind(vector1, vector2, vector3…..vectorN)

Hemos convertido 2 vectores de muestra en una sola array utilizando la siguiente sintaxis. Los elementos de los vectores se llenan en orden de columna mayor.

Sintaxis : cbind(vector1, vector2, vector3…..vectorN)

Ejemplo:

R

# sample vectors
vector1 <- c('red','green',"blue","yellow")
vector2 <- c(1,2,3,4)
  
print("Row Major Order")
rbind(vector1,vector2)
print("Column Major Order")
cbind(vector1,vector2)

Producción:

[1] "Row Major Order"
        [,1]  [,2]    [,3]   [,4]    
vector1 "red" "green" "blue" "yellow"
vector2 "1"   "2"     "3"    "4"   
  
[1] "Column Major Order"
     vector1  vector2
[1,] "red"    "1"    
[2,] "green"  "2"    
[3,] "blue"   "3"    
[4,] "yellow" "4"    

Vectores a marco de datos:

En el código a continuación, en la conversión de nuestros vectores de muestra en un marco de datos, los elementos se completan en el orden de columna principal. El primer vector se convierte en la primera columna, el segundo vector se convierte en la segunda columna.

Sintaxis: data.frame(vector1, vector2, vector3…..vectorN)  

Ejemplo:

R

# sample vectors
vector1 <- c('red', 'green', "blue", "yellow")
vector2 <- c(1, 2, 3, 4)
  
data.frame(vector1, vector2)

Producción:

 vector1 vector2
1     red       1
2   green       2
3    blue       3
4  yellow       4

Array a Vector:

En el código a continuación, la array de muestra contiene elementos del 1 al 6, hemos especificado nrows=2 , lo que significa que nuestra array de muestra contendrá 2 filas, luego usamos la siguiente sintaxis que convierte la array en un vector largo. Se accede a los elementos de la array en orden de columna principal. 

Sintaxis: as.vector(nombre_array)

Ejemplo:

R

# sample matrix
mat<- matrix(c(1:6), nrow = 2)
print("Sample Matrix")
mat
  
print("After conversion into vector")
as.vector(mat)

Producción:

[1] "Sample Matrix"
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

[1] "After conversion into vector"
[1] 1 2 3 4 5 6

Array a marco de datos:

En el código a continuación, la array de muestra contiene elementos del 1 al 6, hemos especificado nrows=2 , lo que significa que nuestra array de muestra contendrá 2 filas, luego usamos la sintaxis a continuación que convierte la array en un marco de datos. Se accede a los elementos de la array en orden de columna principal. 

Sintaxis: as.data.frame(matrix_name)

Ejemplo:

R

# sample matrix
mat<- matrix(c(1:6), nrow = 2)
print("Sample Matrix")
mat
  
print("After conversion into Dataframe")
as.data.frame(mat)

Producción:

[1] "Sample Matrix"
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

[1] "After conversion into Dataframe"
  V1 V2 V3
1  1  3  5
2  2  4  6

Marco de datos a array:

En el código a continuación, hemos creado un marco de datos de muestra que contiene elementos de diferentes tipos, luego hemos usado la sintaxis a continuación que convierte el marco de datos en una array de tipo de carácter, lo que significa que cada elemento de la array es de tipo de carácter .

Sintaxis: as.matrix(dataframe_name)

Ejemplo:

R

# sample dataframe
df <- data.frame(
   serial = c (1:5), 
   name = c("Welcome","to","Geeks","for","Geeks"),
   stipend = c(2000,3000.5,5000,4000,500.2), 
   stringsAsFactors = FALSE)
  
print("Sample Dataframe")
df
  
print("After conversion into Matrix")
as.matrix(df)

Producción:

[1] "Sample Dataframe"
  serial    name stipend
1      1 Welcome  2000.0
2      2      to  3000.5
3      3   Geeks  5000.0
4      4     for  4000.0
5      5   Geeks   500.2

[1] "After conversion into Matrix"
     serial name      stipend 
[1,] "1"    "Welcome" "2000.0"
[2,] "2"    "to"      "3000.5"
[3,] "3"    "Geeks"   "5000.0"
[4,] "4"    "for"     "4000.0"
[5,] "5"    "Geeks"   " 500.2"

Publicación traducida automáticamente

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