R 编程中的向量类型
R编程中的向量与C语言中的数组相同,用于保存相同类型的多个数据值。一个主要的关键点是,在 R 中,向量的索引将从“1”开始,而不是从“0”开始。向量是R中最基本的数据类型。即使是创建的单个对象也以向量的形式存储。向量只不过是其他语言中定义的数组。向量包含一系列同质类型的数据。 R中的向量主要有两种,下面给出R中完整的分类向量。
- 原子向量
- 整数
- 双倍的
- 逻辑的
- 字符
- 复杂的
- 生的
- 递归向量
- 列表
原子向量和递归向量(列表)之间的主要区别在于原子向量是同质的,而递归向量(列表)可以是异构的。向量具有三个共同的属性:
- 类型, typeof(),它是什么。
- 长度,长度() ,它包含多少个元素。
- 属性, attributes() ,其他任意元数据。
原子向量
原子向量可能是 R 编程语言中最基本的数据结构。原子向量与一维数组不同:数组具有长度为 1 的 dim 属性,而向量没有此类属性。原子向量也不同于列表。向量的元素都是相同的类型,而列表可以包含任意类型。原子向量是用c()函数或向量函数构造的。
整数向量
整数向量在 R 中也称为数值向量。这包括负整数和正整数。在 R 中,默认情况下数字是双精度数,因此要生成整数,请将 L 放在数字后面。
例子:
R
# R program to create integer Vectors
# creation of integer vectors
# using c() function.
v1 <- c(1L, 4L, 2L, 5L)
# print vector
print(v1)
# display type of vector
print(typeof(v1))
R
# R program to create double Vectors
# creation of double vectors
# using c() function.
v1 <- c(4, 5, 6, 7)
# print vector
print(v1)
# display type of vector
print(typeof(v1))
R
# R program to create Logical Vectors
# Creating logical vector
# using c() function
v1 <- c(TRUE, FALSE, TRUE, NA)
# print vector
print(v1)
# display type of vector
print(typeof(v1))
R
# R program to create Character Vectors
# by default numeric values
# are converted into characters
v1 <- c('geeks', '2', 'hello', 57)
# print vector
print(v1)
# display type of vector
print(typeof(v1))
R
# R program to create complex Vectors
# create complex vector
v1 <- c(1+2i, 3i, 4-5i, -12+6i)
# print vector
print(v1)
# display type of vector
print(typeof(v1))
R
# R program to illustrate raw vector
# Creating raw vector using raw()
print(raw(3))
# Print the type of vector
print(typeof(raw(3)))
R
# R program to create recursive Vectors
# create recursive Vectors
l1 <- list(1, 2, 3)
# print vector
print(l1)
# display type of vector
print(typeof(l1))
输出:
[1] 1 4 2 5
[1] "integer"
双向量
双向量也称为 R 中的数字向量。这包括具有精度的小数。在 R 中,默认情况下数字是双精度数。
例子:
R
# R program to create double Vectors
# creation of double vectors
# using c() function.
v1 <- c(4, 5, 6, 7)
# print vector
print(v1)
# display type of vector
print(typeof(v1))
输出:
[1] 4 5 6 7
[1] "double"
逻辑向量
逻辑向量是最简单的原子向量类型,因为它们只取三个可能的值:FALSE、TRUE 和 NA。逻辑向量可以用运算符构造。我们也可以使用c()创建它们。
例子:
R
# R program to create Logical Vectors
# Creating logical vector
# using c() function
v1 <- c(TRUE, FALSE, TRUE, NA)
# print vector
print(v1)
# display type of vector
print(typeof(v1))
输出:
[1] TRUE FALSE TRUE NA
[1] "logical"
字符向量
字符向量是最复杂的原子向量类型,因为字符向量的每个元素都是一个字符串,而字符串可以包含任意数量的数据。 R 中的字符串可以包含字母、数字和符号。在 R 中表示一个值是字符类型的最简单方法是将值包含在单引号或双引号内。我们甚至可以使用as。 字符()函数将值存储为字符或将值转换为字符数据类型。
例子:
R
# R program to create Character Vectors
# by default numeric values
# are converted into characters
v1 <- c('geeks', '2', 'hello', 57)
# print vector
print(v1)
# display type of vector
print(typeof(v1))
输出:
[1] "geeks" "2" "hello" "57"
[1] "character"
复向量
复杂数据类型是存储带有虚部的数字。复数值的例子有 1+2i、3i、4-5i、-12+6i 等。
例子:
R
# R program to create complex Vectors
# create complex vector
v1 <- c(1+2i, 3i, 4-5i, -12+6i)
# print vector
print(v1)
# display type of vector
print(typeof(v1))
输出:
[1] 1+2i 0+3i 4-5i -12+6i
[1] "complex"
原始向量
原始向量存储数据的原始字节。制作原始向量变得复杂,但可以使用raw()函数创建原始向量。
例子:
R
# R program to illustrate raw vector
# Creating raw vector using raw()
print(raw(3))
# Print the type of vector
print(typeof(raw(3)))
输出:
[1] 00 00 00
[1] "raw"
递归向量
列表从原子向量开始变得复杂,因为列表可以包含其他列表。这使得它们适合表示层次结构或树状结构。我们可以使用list()创建一个列表。
例子:
R
# R program to create recursive Vectors
# create recursive Vectors
l1 <- list(1, 2, 3)
# print vector
print(l1)
# display type of vector
print(typeof(l1))
输出:
[[1]]
[1] 1
[[2]]
[1] 2
[[3]]
[1] 3
[1] "list"
可以为列表元素指定名称,并且可以使用这些名称访问它们。列表在函数内部非常有用。因为 R 中的函数只能返回一个对象,所以您可以将许多不同类型的结果“装订”到一个函数可以返回的对象中。列表不会像矢量一样打印到控制台。相反,列表的每个元素都从新行开始。元素由双括号索引。如果列表的元素已命名,则可以通过 $ 表示法来引用它们。