R语言 用列名将数据框架转换为矩阵
数据框和矩阵都是R对象,它们都允许将数据以表格的形式存储到组织良好的单元中。然而,数据框中的数据可以由不同的数据类型组成,也就是说,单元格可以包含属于不同数据类型的组合的数据。另一方面,矩阵严格允许一个单一的数据类型的值存储在其所有的数据元素中。如果满足以下条件,这些数据是可以相互转换的。
- 数据框架不应该有NA或缺失的值。
- 所有列中存储的数据类型应该是同一类型,即数字或字符类型。
R编程语言中的data.matrix()方法用于将数据框转换为数字矩阵。数据框中包含的所有变量都被转换为相应的数字模式,然后将其绑定以形成矩阵的列。然而,字符值没有被保留,而是被转换为等效的整数值,以保持矩阵数据类型的统一性。在相互转换过程中,列名被保留。
语法: data.matrix(dataframe, rownames.force = NA)
参数:
- dataframe – 要转换为矩阵的数据框架
- rownames.force – 逻辑上决定生成的矩阵是否应该有字符(而不是NULL)行名。
例1 :
# declaring a data frame in R
data_frame = data.frame(C1= c(5:8), C2 = c("ab","b","C","d"))
print("Original data frame")
print(data_frame)
# converting the data frame into matrix
mat = data.matrix(data_frame)
print ("matrix of the above data frame")
print (mat)
输出:
[1] “Original data frame”
C1 C2
1 5 ab
2 6 b
3 7 C
4 8 d
[1] “matrix of the above data frame”
C1 C2
[1,] 5 1
[2,] 6 2
[3,] 7 3
[4,] 8 4
然而,这种转换有一个例外,那就是如果作为输入的数据完全是数字,包括整数和浮点小数,那么同样的数据会作为输出返回,而不需要任何相互转换。
例2 :
# declaring a data frame in R
data_frame = data.frame(C1= c(5:8),C2 = c(1.2,6,5.7,0.5))
print("Original data frame")
print(data_frame)
# converting the data frame into matrix
mat = data.matrix(data_frame)
print ("matrix of the above data frame")
print (mat)
输出:
[1] “Original data frame”
C1 C2
1 5 1.2
2 6 6.0
3 7 5.7
4 8 0.5
[1] “matrix of the above data frame”
C1 C2
[1,] 5 1.2
[2,] 6 6.0
[3,] 7 5.7
[4,] 8 0.5
布尔数据类型,TRUE在矩阵形式中被返回为1,FALSE为0。
例3 :
# declaring a data frame in R
data_frame = data.frame(C1= c(5:7),C2 = c(1,6,TRUE),
C3=c(FALSE,TRUE,FALSE))
print("Original data frame")
print(data_frame)
# converting the data frame into matrix
mat = data.matrix(data_frame)
print ("matrix of the above data frame")
print (mat)
输出:
[1] “Original data frame”
C1 C2 C3
1 5 1 FALSE
2 6 6 TRUE
3 7 1 FALSE
[1] “matrix of the above data frame”
C1 C2 C3
[1,] 5 1 0
[2,] 6 6 1
[3,] 7 1 0