如何在 r 中将数据帧转换为矩阵(附示例)
您可以使用以下任意方法将数据框转换为 R 中的矩阵:
方法 1:将 Dataframe 从数字列转换为矩阵
mat <- as. matrix (df)
方法2:将带有字符/因子的数据框转换为矩阵
mat <- data. matrix (df)
请注意,这两种方法都使用基本的 R 函数,因此您无需安装任何外部包即可使用这些方法。
以下示例展示了如何在实践中使用每种方法。
方法 1:将 Dataframe 从数字列转换为矩阵
假设 R 中有以下仅包含数字列的数据框:
#create data frame
df <- data. frame (points=c(99, 90, 86, 88, 95),
assists=c(33, 28, 31, 39, 34),
rebounds=c(30, 28, 24, 24, 28))
#view data frame
df
points assists rebounds
1 99 33 30
2 90 28 28
3 86 31 24
4 88 39 24
5 95 34 28
我们可以使用as.matrix()函数快速将此数据框转换为数字矩阵:
#convert data frame to matrix
mat <- as. matrix (df)
#view matrix
mast
points assists rebounds
[1,] 99 33 30
[2,] 90 28 28
[3,] 86 31 24
[4,] 88 39 24
[5,] 95 34 28
#view class of mat
class(mat)
[1] "matrix" "array"
使用class()函数,我们确认新对象确实是一个矩阵。
方法2:将带有字符/因子的数据框转换为矩阵
假设我们在 R 中有以下数据框,其中同时包含字符列和数字列:
#create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C'),
points=c(99, 90, 86, 88, 95),
assists=c(33, 28, 31, 39, 34))
#view data frame
df
team points assists
1 A 99 33
2 A 90 28
3 B 86 31
4 B 88 39
5 C 95 34
我们可以使用data.matrix()函数快速将此数据框转换为数字矩阵:
#convert data frame to matrix
mat <- data. matrix (df)
#view matrix
mast
team points assists
[1,] 1 99 33
[2,] 1 90 28
[3,] 2 86 31
[4,] 2 88 39
[5,] 3 95 34
#view class of mat
class(mat)
[1] "matrix" "array"
使用class()函数,我们确认新对象确实是一个矩阵。
我们还可以输入以下内容:
?data.matrix
这告诉我们:
Description:
Return the matrix obtained by converting all the variables in a
data frame to numeric mode and then binding them together as the
columns of a matrix. Factors and ordered factors are replaced by
their internal codes.
这解释了为什么团队名称 A、A、B、B、C 被转换为值 1、1、2、2、3。
其他资源
以下教程解释了如何在 R 中执行其他常见操作: