如何在 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 中执行其他常见操作:

如何在R中将数据框列转换为向量
如何在R中将矩阵转换为向量
如何在 R 中将表格转换为数据框

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注