R 向量

2025年3月17日 | 阅读 7 分钟

向量是一种基本数据结构,在 R 编程中扮演着重要的角色。

在 R 中,共享相同数据类型的一系列元素被称为向量。 向量支持逻辑型、整型、双精度型、字符型、复数型或原始数据类型。 向量中包含的元素被称为向量的分量。 我们可以借助 typeof() 函数检查向量的类型。

R Vector

长度是向量的一个重要属性。 向量长度基本上是向量中元素的数量,它可以通过 length() 函数计算。

向量分为两部分,即原子向量列表。 它们具有三个共同的属性,即函数类型、函数长度属性函数

R Vector

原子向量和列表之间只有一个区别。 在原子向量中,所有元素的类型都相同,但在列表中,元素的类型不同。 在本节中,我们将只讨论原子向量。 我们将在下一个主题中简要讨论列表。

如何在 R 中创建向量?

在 R 中,我们使用 c() 函数来创建一个向量。 此函数返回一个一维数组或简单向量。 c() 函数是一个通用函数,它组合它的参数。 所有参数都限制为一种公共数据类型,即返回值的类型。 在 R 中还有其他各种创建向量的方法,如下所示

1) 使用冒号 (:) 运算符

我们可以借助冒号运算符创建一个向量。 使用冒号运算符的语法如下

此运算符创建一个包含从 x 到 y 的元素的向量,并将其赋值给 z。

示例

输出

[1]   4   3   2   1   0   -1   -2   -3   -4   -5   -6   -7   -8   -9   -10

2) 使用 seq() 函数

在 R 中,我们可以借助 seq() 函数创建一个向量。 序列函数创建一个元素序列作为向量。 seq() 函数有两种使用方式,即通过使用“by”参数设置步长,或者使用“length.out”功能指定向量的长度。

示例

输出

[1]   1.0   1.5   2.0   2.5   3.0   3.5   4.0

示例

输出

[1]   1.0   1.6   2.2   2.8   3.4   4.0
[1]   "numeric"

R 中的原子向量

在 R 中,有四种类型的原子向量。 原子向量在数据科学中扮演着重要的角色。 原子向量是借助 c() 函数创建的。 这些原子向量如下

R Vector

数值向量

十进制值在 R 中被称为数值数据类型。 如果我们给任何变量 d 赋值一个十进制值,那么这个 d 变量将变为数值类型。 包含数值元素的向量被称为数值向量。

示例

输出

[1]   45.5
[1]   10.1   10.2   33.2
[1]   "numeric"
[1]   "numeric"

整型向量

一个非分数数值被称为整数数据。 这种整数数据由 “Int” 表示。 Int 的大小为 2 字节,而 long Int 的大小为 4 字节。 有两种方法可以将整数值赋给变量,即使用 as.integer() 函数和将 L 附加到该值。

包含整数元素的向量被称为整型向量。

示例

输出

[1]   "integer"
[1]   "integer"
[1]   "integer"
[1]   "integer"

字符向量

一个字符在内存中被存储为一个字节整数。 在 R 中,有两种不同的方法来创建字符数据类型值,即使用 as.character() 函数,以及通过在双引号 ("") 或单引号 ('') 之间键入字符串。

包含字符元素的向量被称为整型向量。

示例

输出

[1]   "shubham"
[1]   "Arpita"
[1]   "65"
[1]   "1"   "2"   "3"   "4"   "5"
[1]   "shubham"   "arpita"   "nishka"   "vaishali"
[1]   "character"
[1]   "character"
[1]   "character"
[1]   "character"
[1]   "character"

逻辑向量

逻辑数据类型只有两个值,即 True 或 False。 这些值基于哪个条件满足。 包含布尔值的向量被称为逻辑向量。

示例

输出

[1]   FALSE
[1]   TRUE
[1]   TRUE   TRUE   FALSE   TRUE   FALSE   FALSE
[1]   "logical"
[1]   "logical"
[1]   "logical"

访问向量的元素

我们可以借助向量索引来访问向量的元素。 索引表示向量中存储值的位置。 索引将借助整数、字符或逻辑来执行。

R Vector

1) 使用整型向量进行索引

在整型向量上,索引的执行方式与我们在 C、C++ 和 Java 中应用的方式相同。 只有一个区别,即在 C、C++ 和 Java 中,索引从 0 开始,但在 R 中,索引从 1 开始。 与其他编程语言一样,我们通过在向量旁边的方括号 [] 中指定一个整数值来执行索引。

示例

输出

[1] 1.0 1.6 2.2 2.8 3.4 4.0
[1] 1.6

2) 使用字符向量进行索引

在字符向量索引中,我们为向量的每个元素分配一个唯一的键。 这些键被唯一地定义为每个元素,并且可以很容易地被访问。 让我们看一个例子来理解它是如何执行的。

示例

输出

shubham   arpita vaishali
   22      23     25
arpita
      23

3) 使用逻辑向量进行索引

在逻辑索引中,它返回那些位置的值,这些位置的对应位置具有逻辑向量 TRUE。 让我们看一个例子来理解它如何在向量上执行。

示例

输出

[1] 1 3 4 6

向量运算

在 R 中,有各种各样的操作是在向量上执行的。 我们可以将两个或多个向量彼此相加、相减、相乘或相除。 在数据科学中,R 扮演着重要的角色,并且数据操作需要操作。 以下是在向量上执行的操作类型。

R Vector

1) 组合向量

c() 函数不仅用于创建一个向量,而且还用于组合两个向量。 通过组合一个或多个向量,它形成一个新的向量,其中包含每个向量的所有元素。 让我们看一个例子来了解 c() 函数是如何组合向量的。

示例

输出

[1] "1"        "2"        "4"        "5"        "7"        "8"
[7] "shubham"  "arpita"   "nishka"   "gunjan"   "vaishali" "sumit"

2) 算术运算

我们可以在向量上执行所有的算术运算。 算术运算是在向量上逐个成员执行的。 我们可以将两个向量相加、相减、相乘或相除。 让我们看一个例子来理解算术运算是如何在向量上执行的。

示例

输出

[1]  3  7 11 15 
[1] -1 -1 -1 -1
[1]  2 12 30 56
[1] 0.5000000 0.7500000 0.8333333 0.8750000
[1] 1 3 5 7

3) 逻辑索引向量

借助 R 中的逻辑索引向量,我们可以从给定的向量中形成一个新的向量。 这个向量的长度与原始向量相同。 只有当原始向量的相应成员包含在切片中时,向量成员才为 TRUE; 否则,它将为假。 让我们看一个例子来理解如何借助逻辑索引向量形成一个新的向量。

示例

输出

[1] "Shubham"  "Nishka"   "Vaishali"

4) 数值索引

在 R 中,我们指定方括号 [ ] 之间的索引来索引一个数值。 如果我们的索引是负数,它将返回给我们所有除了我们指定的索引之外的值。 例如,指定 [-3] 将提示 R 将 -3 转换为其绝对值,然后搜索占据该索引的值。

示例

输出

[1] "arpita"
[1] "shubham"  "arpita"   "nishka"   "vaishali" "sumit"
[1] NA

5) 重复索引

一个索引向量允许重复的值,这意味着我们可以在一个操作中访问一个元素两次。 让我们看一个例子来理解重复索引是如何工作的。

示例

输出

[1] "arpita" "gunjan" "gunjan" "nishka"

6) 范围索引

范围索引用于对我们的向量进行切片以形成一个新的向量。 对于切片,我们使用冒号 (:) 运算符。 范围索引对于涉及大型运算符的情况非常有帮助。 让我们看一个例子来理解如何借助冒号运算符进行切片以形成一个新的向量。

示例

输出

[1] "arpita"   "nishka"   "gunjan"   "vaishali"

7) 乱序索引

在 R 中,索引向量可以是乱序的。 下面是一个例子,其中一个向量切片的第一和第二个值的顺序被颠倒了。

示例

输出

[1] "arpita"   "shubham"  "nishka"   "gunjan"   "vaishali" "sumit"

8) 命名向量成员

我们首先创建我们的字符向量,如下所示

输出

[1] "TensorFlow" "PyTorch"

一旦创建了我们的字符向量,我们将第一个向量成员命名为 “Start”,第二个成员命名为 “End”,如下所示

输出

Start              End
"TensorFlow"    "PyTorch"

我们通过名称检索第一个成员,如下所示

输出

Start
"TensorFlow"

我们可以借助字符串索引向量来反转顺序。

输出

     Second        First
"PyTorch"    "TensorFlow"

向量的应用

  1. 在机器学习中,向量用于主成分分析。 它们被扩展到特征值和特征向量,然后用于在向量空间中执行分解。
  2. 提供给深度学习模型的输入以向量的形式存在。 这些向量由提供给神经网络输入层的标准化数据组成。
  3. 在支持向量机算法的开发中,使用了向量。
  4. 向量运算用于神经网络中的各种运算,如图像识别和文本处理。

下一个主题R 列表