R 语言中的向量入门

R 是一种用于数据编程的语言。与其他许多语言不同,R 中的基本数据类型不是标量,而是向量。因此,理解如何处理向量对于编程或阅读 R 代码至关重要。在这篇文章中,您将了解 R 中的各种向量运算。具体来说,您将知道:

  • R 中的基本数据对象是什么
  • 如何在 R 中使用向量

让我们开始吧。

R 语言中的向量入门
照片作者:Frame Harirak。保留部分权利。

概述

这篇博文分为三部分;它们是:

  • 基本数据对象
  • 向量上的操作
  • 从向量到矩阵

基本数据对象

在 Python 等其他编程语言中,您拥有整数、浮点数和字符串等基本数据元素。然而,在 R 中,基本元素是向量、列表、因子、数据框和环境。R 中有数据类型,例如字符、数值、整数、逻辑和复数。但 R 原生处理整数向量,而不是单个整数。

让我们从最简单的数据对象开始。要创建从 5 到 10 的整数向量,您可以键入 5:10

该语法使用冒号分隔两个端值,R 将其余值填充为连续的整数。您可以将此向量分配给一个变量并检索其值之一。

在 R 中,向量的索引从 1 开始,而不是 0。这遵循了数学文献中的约定。事实上,您可以使用向量中的多个索引来生成子向量,例如:

将生成一个向量 (5,7,9)。

冒号语法适用于整数向量。但更复杂的模式需要使用 seq() 函数,例如:

这将创建一个步长为偶数的数值向量。要检查向量的数据类型,我们可以运行以下命令:

事实上,由 seq() 函数构建的向量是数值型但不是整数型,因为步长可以是任意的。要检查向量是否为整数向量,我们使用 is.integer() 函数。“is.integer”的名称中间有一个点。标识符中包含点作为合法字符是 R 语法的一个特性。

上面我们创建了两个向量。我们可以使用以下方法将它们连接起来:

请注意,向量 x 中的整数已被转换为浮点值,以使向量类型保持一致。您可以显式转换数据,但这可能会产生副作用。例如,将上述内容转换为整数向量意味着四舍五入浮点数。

向量上的操作

在 R 中,大多数向量操作都是逐元素应用的。例如:

在上面,c(10, 9, 8, 7) 是连接四个单元素向量。运算符 “%/%” 用于执行整数除法(丢弃余数),而运算符 “%%” 用于返回余数。R 中的其他运算符与其他语言类似,例如 +-*/^,分别表示加法、减法、乘法、除法和指数运算。

其他数学运算与您期望的一样。例如,这是指数函数和对数:

您可以参考 R 文档了解内置函数的列表。或者,您可以使用 R 命令检查帮助:library(help = "base")

从向量到矩阵

R 中的矩阵是根据向量构建的。例如,矩阵:

$$
A = \begin{bmatrix}
9 & 2 & 1 \\
5 & -1 & 6 \\
4 & 0 & -2
\end{bmatrix}
$$

可以通过将向量填充到三列来构建:

请注意,向量是按列填充到矩阵中的,但您可以提供一个附加参数“byrow=TRUE”来更改此行为。

您可以使用以下方法查看矩阵的维度:

此输出确实是一个向量。因此,您可以使用以下方法查找行数:

在此示例中,您有一个方阵。因此,您可以使用以下方法找到其行列式和逆矩阵:

正如您可能猜到的,R 中内置了许多其他矩阵运算,包括用于各种矩阵分解的 chol()qr()svd()。您可以通过将逆矩阵乘以原始矩阵来验证上述逆矩阵是否正确:

矩阵乘法使用运算符 “%*%”,因为 “*” 用于逐元素乘法。除了浮点数的舍入误差外,乘积(如上所示)是单位矩阵。

使用矩阵,您可以使用以下方法提取行、列或特定元素:

相反,您可以通过沿行或沿列“绑定”两个矩阵来构建更大的矩阵:

进一步阅读

您可以从以下来源了解有关上述主题的更多信息:

网站

书籍

 

作为练习,您可以尝试:

  • 创建一个包含“apple”、“banana”、“coconut”、“durian”的向量,然后从第一个向量创建另一个只包含前三个元素的向量。
  • 找出 -2、2、5、8 的均方根值。
  • 使用 solve() 函数来查找:
    $$\begin{bmatrix}1 & 1 & 1\\ 0 & 2 & 5\\ 2 & 5 & -1\end{bmatrix}^{-1} \begin{bmatrix}6 \\ -4\\ 27\end{bmatrix}$$

总结

在这篇文章中,您学习了如何操作 R 的基本数据对象向量。具体来说,您学习了如何:

  • 在 R 中创建向量
  • 在 R 中执行向量运算
  • 将向量转换为矩阵并执行一些矩阵运算

暂无评论。

留下回复

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。