本文概述
- 如何在R中创建向量?
- R中的原子向量
- 访问向量的元素
- 向量运算
- 载体的应用
在R中, 共享相同数据类型的元素序列称为向量。向量支持逻辑, 整数, 双精度, 字符, 复数或原始数据类型。向量中包含的元素称为向量的组成部分。我们可以借助typeof()函数检查向量的类型。
文章图片
长度是向量的重要属性。向量长度基本上是向量中元素的数量, 它是通过length()函数来计算的。
向量分为两部分, 即原子向量和列表。它们具有三个通用属性, 即函数类型, 函数长度和属性函数。
文章图片
原子向量和列表之间只有一个区别。在原子向量中, 所有元素都是相同的类型, 但是在列表中, 元素是不同的数据类型。在本节中, 我们将仅讨论原子向量。我们将在下一个主题中简要讨论列表。
如何在R中创建向量? 在R中, 我们使用c()函数创建向量。此函数返回一维数组或简单的向量。 c()函数是结合了其参数的通用函数。所有参数均受通用数据类型(即返回值的类型)的限制。还有多种其他方法可以在R中创建向量, 如下所示:
1)使用冒号(:)运算符
我们可以在冒号运算符的帮助下创建向量。使用冒号运算符有以下语法:
z<
-x:y
该运算符创建一个向量, 其元素从x到y, 并将其分配给z。
例:
a<
-4:-10
a
输出
[1]43210-1-2-3-4-5-6-7-8-9-10
2)使用seq()函数
在R中, 我们可以借助seq()函数创建一个向量。序列函数将元素序列创建为向量。 seq()函数有两种使用方式, 即通过使用?by参数设置步长或通过” length.out” 功能指定向量的长度。
例:
seq_vec<
-seq(1, 4, by=0.5)
seq_vec
class(seq_vec)
输出
[1]1.01.52.02.53.03.54.0
例:
seq_vec<
-seq(1, 4, length.out=6)
seq_vec
class(seq_vec)
输出
[1]1.01.62.22.83.44.0
[1]"numeric"
R中的原子向量 在R中, 有四种类型的原子向量。原子载体在数据科学中起着重要作用。原子向量是借助c()函数创建的。这些原子向量如下:
文章图片
数值向量
十进制值在R中被称为数字数据类型。如果我们将十进制值分配给任何变量d, 则此d变量将成为数字类型。包含数字元素的向量称为数字向量。
例:
d<
-45.5
num_vec<
-c(10.1, 10.2, 33.2)
d
num_vec
class(d)
class(num_vec)
输出
[1]45.5
[1]10.110.233.2
[1]"numeric"
[1]"numeric"
整数向量
非分数数值称为整数数据。该整数数据由” Int” 表示。 Int大小为2个字节, long Int大小为4个字节。有两种将整数值分配给变量的方法, 即通过使用as.integer()函数并将L附加到该值上。
包含整数元素的向量称为整数向量。
例:
d<
-as.integer(5)
e<
-5L
int_vec<
-c(1, 2, 3, 4, 5)
int_vec<
-as.integer(int_vec)
int_vec1<
-c(1L, 2L, 3L, 4L, 5L)
class(d)
class(e)
class(int_vec)
class(int_vec1)
输出
[1]"integer"
[1]"integer"
[1]"integer"
[1]"integer"
字符向量
字符在内存中保留为一字节整数。在R中, 有两种不同的方式来创建字符数据类型值, 即使用as.character()函数以及在双引号(“ ” )或单引号(“ )之间键入字符串。
包含字符元素的向量称为整数向量。
例:
d<
-'shubham'
e<
-"Arpita"
f<
-65
f<
-as.character(f)
d
e
f
char_vec<
-c(1, 2, 3, 4, 5)
char_vec<
-as.character(char_vec)
char_vec1<
-c("shubham", "arpita", "nishka", "vaishali")
char_vec
class(d)
class(e)
class(f)
class(char_vec)
class(char_vec1)
输出
[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。这些值基于满足的条件。包含布尔值的向量称为逻辑向量。
例:
d<
-as.integer(5)
e<
-as.integer(6)
f<
-as.integer(7)
g<
-d>
e
h<
-e<
f
g
h
log_vec<
-c(d<
e, d<
f, e<
d, e<
f, f<
d, f<
e)
log_vec
class(g)
class(h)
class(log_vec)
输出
[1]FALSE
[1]TRUE
[1]TRUETRUEFALSETRUEFALSEFALSE
[1]"logical"
[1]"logical"
[1]"logical"
访问向量的元素 我们可以借助向量索引来访问向量的元素。索引表示向量中存储值的位置。索引将在整数, 字符或逻辑的帮助下执行。
文章图片
1)整数向量索引
在整数向量上, 索引的执行方式与在C, C ++和Java中的应用方式相同。只有一个区别, 即在C, C ++和Java中, 索引从0开始, 但是在R中, 索引从1开始。像其他编程语言一样, 我们通过在方括号中指定整数值来执行索引。到我们的向量。
例:
seq_vec<
-seq(1, 4, length.out=6)
seq_vec
seq_vec[2]
输出
[1] 1.0 1.6 2.2 2.8 3.4 4.0
[1] 1.6
2)用字符向量索引
在字符向量索引中, 我们为向量的每个元素分配一个唯一键。这些键是每个元素的唯一定义, 可以很容易地访问。让我们看一个例子来了解它是如何执行的。
例:
char_vec<
-c("shubham"=22, "arpita"=23, "vaishali"=25)
char_vec
char_vec["arpita"]
输出
shubhamarpita vaishali
222325
arpita
23
3)用逻辑向量建立索引
在逻辑索引中, 它返回其对应位置具有逻辑向量TRUE的那些位置的值。让我们看一个例子, 以了解如何在向量上执行它。
例:
a<
-c(1, 2, 3, 4, 5, 6)
a[c(TRUE, FALSE, TRUE, TRUE, FALSE, TRUE)]
输出
[1] 1 3 4 6
向量运算 在R中, 对向量执行各种操作。我们可以彼此相加, 相减, 相乘或相除两个或多个向量。在数据科学中, R扮演着重要角色, 并且数据操作需要进行操作。对向量执行以下类型的操作。
文章图片
1)合并向量
c()函数不仅用于创建向量, 而且还用于组合两个向量。通过组合一个或多个向量, 它形成一个新向量, 其中包含每个向量的所有元素。让我们看一个例子, 看看c()函数如何组合向量。
例:
p<
-c(1, 2, 4, 5, 7, 8)
q<
-c("shubham", "arpita", "nishka", "gunjan", "vaishali", "sumit")
r<
-c(p, q)
输出
[1] "1""2""4""5""7""8"
[7] "shubham""arpita""nishka""gunjan""vaishali" "sumit"
2)算术运算
我们可以对向量执行所有算术运算。算术运算是对向量逐个成员执行的。我们可以加, 减, 乘或除两个向量。让我们看一个例子, 以了解如何对向量执行算术运算。
例:
a<
-c(1, 3, 5, 7)
b<
-c(2, 4, 6, 8)
a+b
a-b
a/b
a%%b
输出
[1]37 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;否则, 向量成员为TRUE。否则, 它将是错误的。让我们看一个例子, 以了解如何在逻辑索引向量的帮助下形成一个新向量。
例:
a<
-c("Shubham", "Arpita", "Nishka", "Vaishali", "Sumit", "Gunjan")
b<
-c(TRUE, FALSE, TRUE, TRUE, FALSE, FALSE)
a[b]
输出
[1] "Shubham""Nishka""Vaishali"
4)数值索引
在R中, 我们指定方括号[]之间的索引以索引数值。如果索引为负, 它将返回除我们指定的索引以外的所有值。例如, 指定[-3]将提示R将-3转换为其绝对值, 然后搜索占用该索引的值。
例:
q<
-c("shubham", "arpita", "nishka", "gunjan", "vaishali", "sumit")
q[2]
q[-4]
q[15]
输出
[1] "arpita"
[1] "shubham""arpita""nishka""vaishali" "sumit"
[1] NA
5)重复索引
索引向量允许重复值, 这意味着我们可以在一个操作中访问一个元素两次。让我们看一个例子来了解重复索引是如何工作的。
例:
q<
-c("shubham", "arpita", "nishka", "gunjan", "vaishali", "sumit")
q[c(2, 4, 4, 3)]
输出
[1] "arpita" "gunjan" "gunjan" "nishka"
6)范围指标
范围索引用于对向量进行切片以形成新向量。对于切片, 我们使用了冒号(:)运算符。范围索引对于涉及大量操作员的情况非常有用。让我们看一个示例, 以了解如何在冒号运算符的帮助下完成切片以形成新向量。
例:
q<
-c("shubham", "arpita", "nishka", "gunjan", "vaishali", "sumit")
b<
-q[2:5]
b
输出
[1] "arpita""nishka""gunjan""vaishali"
7)乱序索引
在R中, 索引向量可能是乱序的。下面是一个示例, 其中向量切片的第一和第二值的顺序颠倒了。
例:
q<
-c("shubham", "arpita", "nishka", "gunjan", "vaishali", "sumit")b<
-q[2:5]
q[c(2, 1, 3, 4, 5, 6)]
输出
[1] "arpita""shubham""nishka""gunjan""vaishali" "sumit"
8)命名向量成员
我们首先将字符向量创建为:
z=c("TensorFlow", "PyTorch")
z
输出
[1] "TensorFlow" "PyTorch"
创建字符向量后, 我们将第一个向量成员命名为” 开始” , 将第二个成员命名为” 结束” , 分别为:
names(z)=c("Start", "End")
z
输出
StartEnd
"TensorFlow""PyTorch"
我们按名称检索第一个成员, 如下所示:
z["Start"]
输出
Start
"TensorFlow"
我们可以借助字符串索引向量反转顺序。
z[c("Second", "First")]
【R向量用法详解】输出
SecondFirst
"PyTorch""TensorFlow"
载体的应用
- 在机器学习中, 使用主成分分析向量。它们被扩展为特征值和特征向量, 然后用于在向量空间中执行分解。
- 提供给深度学习模型的输入为向量形式。这些向量由标准化数据组成, 该数据被提供给神经网络的输入层。
- 在支持向量机算法的开发中, 使用了向量。
- 向量运算在神经网络中用于各种运算, 例如图像识别和文本处理。
推荐阅读
- R中的T检验示例图解
- R XML文件操作详细图解
- R while循环语句示例图解
- R和Python的区别详细对比(图解)
- R时间序列分析示例详解
- R编程中的变量
- R编程教程
- R switch语句示例图解
- R散点图示例图解