如何使用示例在 R 中创建空矩阵

1,609 阅读7分钟

在这个简短的教程中,你将学习如何在R中创建一个矩阵。我们将使用matrix() 函数,以及其他两个函数来达到这个目的。具体来说,我们将深入了解这个函数的细节,因为这将使我们能够为我们创建的矩阵中的列和行命名。也就是说,我们将看看R中matrix() 函数的不同参数。在下一节中,你将看到本教程的大纲。

R创建矩阵

大纲

如前所述,本篇文章将通过实例介绍R语言中矩阵的创建。然而,在第一节中,我们将看一下matrix() 函数(我们将用来创建矩阵的函数)的不同参数。在第二部分,我们将回答 "什么是R中的矩阵?"和 "如何在R中创建矩阵?"的问题。

在这两个问题(和答案)之后,我们将继续讲第一个例子,如何在R中创建一个矩阵。在这里,我们将在R中创建一个矩阵时使用matrix() 函数。在第二个例子中,我们将看看如何使用rbind() 函数将几个向量组合成一个矩阵。之后,我们将使用cbind() 来完成同样的工作(但结果不同),然后是rbind() 函数。在这两个例子中,我们将看到如何从R语言中的向量创建一个矩阵。第5个例子将告诉你必须创建一个空矩阵,最后一个例子将告诉你如何命名行和列。在第6个,也是最后一个例子中,你将学习如何在R中创建一个零的矩阵。

什么是R语言中的矩阵?

在R语言中,矩阵是具有相同数据类型(如数字、字符或逻辑)的元素的集合。)此外,这些元素被排列成固定数量的行和列(例如,3行和3列,10行和2列)。这种类型的数据是二维的。

如何在R中创建一个矩阵?

在R中可以使用matrix()函数来创建一个矩阵。例如,下面的代码将产生一个3乘3的矩阵:

mtx <- matrix(3:11, nrow = 3, ncol = 3)

此外,还可以结合向量来创建一个矩阵。

在下一节中,你将了解到Matrix()函数的概况。

Matrix()函数的语法

下面是矩阵函数的一般语法。

matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE,
    dimnames = NULL)

Code language: PHP (php)

正如你所看到的,有5个参数可以使用:

  • data - 这个参数是可选的,它将包含例如数据的一个向量(见上一节或下面的例子)。
  • nrow - 这个参数用来获取你想要的行数(见接下来的例子)。
  • ncol - 这个参数和nrow一样,是用来获取你所创建的矩阵的列数的。
  • dimnames - 如果你想给列和行命名,可以使用这个参数(见本帖最后一个例子)

在下一节中,我们将在R中创建我们的第一个矩阵。

如何在R语言中创建一个矩阵--例子1

下面是如何创建一个矩阵的第一个例子。

mtx <- matrix(seq(1,9),
              nrow = 3,
              ncol = 3)

Code language: HTML, XML (xml)

正如你所看到的,在上面的代码块中,我们使用seq()函数在R中创建一个序列(即一个矢量)。此外,我们使用nrowncol 参数来告诉matrix()函数,我们想创建一个三乘三的矩阵。下面是这个名为mtx 的矩阵的样子。

create matrix in R

在下一个例子中,我们将看看如何创建一个矩阵并将byrow 参数设置为TRUE

例2:在R中通过行来创建一个矩阵

下面是我们如何在R中创建一个矩阵,从一个数字序列(即一个向量)中,按行获取数字。

mtx <- matrix(seq(1,9),
              nrow = 3,
              ncol = 3,
              byrow = TRUE)

Code language: R (r)

请注意,我们可以通过在R中使用t() 函数对矩阵进行转置来翻转顺序(即输入t(mtx) )。这将导致一个与第一个例子中的矩阵一模一样。这里有一篇关于R语言转置的文章,可以了解更多信息。

在下一个例子中,我们将看看如何使用cbind() ,将三个向量合并成一个矩阵。

例3:使用cbind()函数从R中的向量创建一个矩阵

下面是如何使用cbind() 函数在R中产生一个矩阵。

mtx <- cbind(seq(1,3), seq(4, 6),
      seq(7, 9))

注意,当我们碰巧已经有以向量形式存储的数据时,这种方法可能更可行。下面是创建的矩阵。

create matrix in R

用cbind()在R中创建矩阵

正如你在上面的图片中看到的,我们得到的结果与第一个例子中的完全一样。在下一个例子中,在回到使用matrix() 函数之前,我们将看一下

例四:使用rbind()函数从R中的向量创建一个矩阵

下面是如何使用rbind() 函数从R中的向量创建一个矩阵。

mtx <- rbind(seq(1,3), seq(4, 6),
             seq(7, 9))

cbind() 创建矩阵的方法一样,当我们有向量的数据时,首先用这种方法创建矩阵可能更有用。下面是创建的矩阵。

create matrix from vectors in R

用rbind()从R中的向量创建一个矩阵

同样,这种方法创建的矩阵与例2中的相同。在下一个例子中,我们将看看如何在R中创建一个空矩阵。

例5:如何在R语言中创建一个空的矩阵

下面是我们如何在R中创建一个空矩阵。

empty_matrix <- matrix(nrow = 4, ncol = 4)

Code language: HTML, XML (xml)

如你所见,这次我们跳过了第一个参数(即_数据_)。然而,我们确实创建了一个4乘4的空矩阵,下面是结果。

r create empty matrix

空的矩阵

现在可以用数据(即计算)来填充这个空矩阵。在下一个例子中,我们将看看在创建矩阵时如何命名行和列。

例6:在R中创建矩阵时如何命名行和列

现在,为了在创建矩阵时命名行和列,我们使用dimnames 参数。

mtx <- matrix(seq(1,9),
              nrow = 3,
              ncol = 3,
              dimnames = list(c("1", "2" ,"3"),
                              c("Vector", "List", "Matrix")))

Code language: PHP (php)

在上面的代码块中,我们给行的命名非常简单:1、2、3。为了好玩,我们将列命名为 "向量"、"列表 "和 "矩阵"。

naming the columns and rows when creating a matrix in R

在下一个,也是最后一个例子中,你将学习如何在R中生成一个零的矩阵。

例7:如何在R语言中创建一个零点矩阵

下面是我们如何在R语言中创建一个零点矩阵的方法。

mtx_zeros <- matrix(rep(0, 9),
                    ncol = 3,
                    nrow = 3)

Code language: R (r)

在上面的代码块中,我们使用 R中的rep()函数将数字0重复9次。这使我们能够生成一个由零填充的矩阵。下面是结果。

matrix of zeros

零的矩阵

总结

在这篇文章中,你已经学会了如何在R中创建矩阵。更具体地说,你已经通过6个例子学会了。首先,我们快速浏览了matrix() 函数和它的语法。其次,我们回答了一些问题。此外,你已经通过例子学习了如何制作矩阵。首先,我们刚刚用一串数字和nrowncol 参数创建了一个3×3的矩阵。第二,我们使用byrow 参数得到了一个稍微不同的矩阵。在第三和第四个例子中,我们分别使用了cbind()rbind() 函数。随后,我们学习了如何在R中创建一个空矩阵,以及在创建矩阵时如何命名列和行。我希望你能学到一些东西。如果你做到了,请在你的社交媒体账户上分享这篇文章,并在下面留下评论。