R语言 数据类型转换

R语言 数据类型转换

数据类型转换是将一种数据类型转换为另一种数据类型的过程。R编程语言只有3种数据类型。数值型、逻辑型、字符型。在这篇文章中,我们将看到如何转换R编程语言中的数据类型。

由于R语言是一种弱类型语言或动态类型语言,R语言会根据分配给变量的值自动创建数据类型。我们在下面的代码中可以窥见一斑。

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

输出

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

我们使用 typeof(value) 函数来检查上述代码中分配给变量的值的类型。

R语言中的数据类型转换

数值或字符到逻辑类型

任何不为 0 的数值,在转换为逻辑类型时都会被转换为 TRUE。 这里 “20 “是一个非0的数值。因此,它被转换为 TRUE。

“FALSE “是一个字符类型,在转换时成为逻辑类型的FALSE。从字符类型转换为逻辑类型时,双引号会被删除。

语法: as.logical(value)

例子

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

输出

[1] TRUE
[1] FALSE

数字型或逻辑型改为字符型。

任何 字符 类型的值都是用 双引号” “ )括起来的。 因此,数字型的20转换为字符型的 “20”。同样,将逻辑类型的 “FALSE “转换为字符类型的 “FALSE “也是如此。

语法: as.character(value)

例子

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

输出

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

字符型或逻辑型到数字型

语法: as.numeric(value)

字符类型的 “20 “在转换为数字类型时变成了20,只是双引号被去掉了。将逻辑类型转换为数字类型,FALSE-> 0,TRUE-> 1。

例子

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

输出

[1] 20
[1] 0

向量到矩阵

在下面的代码中,我们通过使用下面的语法将2个样本向量转换成一个矩阵。向量的元素是按照 行的主要顺序 填充的。

语法 :rbind(vector1, vector2, vector3…..vectorN)

我们通过使用下面的语法将2个样本向量转换成一个单一的矩阵。向量中的元素是以 列为主的顺序 填充的。

语法 :cbind(vector1, vector2, vector3…..vectorN)

例子

# 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)

输出

[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"    

向量到数据框架

在下面的代码中,在将我们的样本向量转换为数据框架时,元素是按照列的主次顺序填充的。第一个向量成为第一列, 第二个向量成为第二列。

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

例子

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

输出

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

矩阵到矢量

在下面的代码中,样本矩阵包含从1到6的元素,我们指定 nrows=2 ,这意味着我们的样本矩阵将包含2行,然后我们使用下面的语法 ,将矩阵转换为一个长矢量。矩阵中的元素以列为主的顺序被访问。

语法: as.vector(matrix_name)

例子

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

输出

[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

矩阵到数据框架

在下面的代码中,样本矩阵包含从1到6的元素,我们指定 nrows=2 ,这意味着我们的样本矩阵将包含2行,然后我们使用下面的语法将矩阵转换成数据框架。矩阵中的元素是以列为主的顺序访问的。

语法: as.data.frame(matrix_name)

例子

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

输出

[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

数据框架到矩阵

在下面的代码中,我们创建了一个包含不同类型元素的样本数据框,然后我们使用下面的语法将数据框转换为字符类型的矩阵,这意味着矩阵的每个元素都是 字符 类型的。

语法: as.matrix(dataframe_name)

例子

# 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)

输出

[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"

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程