使用 R 中的列名将 DataFrame 转换为矩阵
数据框和矩阵是 R 对象,它们都允许将数据以表格形式存储到组织良好的单元格中。然而,数据帧中的数据可以由不同的数据类型组成,即单元格可能包含属于数据类型组合的数据。另一方面,矩阵严格允许跨其所有数据元素存储单一数据类型值。如果满足以下条件,它们可以相互转换:
- 数据框不应有 NA 或缺失值。
- 跨所有列存储的数据类型应为相同类型,即数字或字符类型。
R 编程语言中的 data.matrix() 方法用于将数据框转换为数字矩阵。数据框中包含的所有变量都被转换为相应的数字模式,然后将它们绑定以形成矩阵的列。但是,不保留字符值,而是将其转换为等效的整数值,以保持矩阵数据类型的一致性。在相互转换期间保留列名称。
Syntax: data.matrix(dataframe, rownames.force = NA)
Parameters :
- dataframe – the data frame to convert to a matrix
- rownames.force – logical determining whether the resulting matrix should have character (rather than NULL) row names.
示例 1:
R
# 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)
R
# 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)
R
# 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
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