R语言数组
提示
- 数组的定义和特点:R 语言中的数组是一种数据结构,用于存储相同类型的数据,并且可以有超过两个维度。
- 创建数组的方法:使用
array()
函数创建数组,其中vector
是数据项,dim
是维度(如行数、列数和矩阵数量)。 - 访问和检查数组元素:使用向量索引操作符
[ ]
来访问特定元素或整行/列,%in%
运算符检查元素是否存在于数组中。
数组是一种数据结构,可以在超过两个维度中存储相同类型的数据。
向量、矩阵和数组之间的唯一区别是
- 向量是一维数组
- 矩阵是二维数组
- 数组可以有超过两个维度
在学习数组之前,请确保你了解了 R 矩阵 和 R 向量。
在 R 中创建数组
在 R 中,我们使用 array()
函数来创建数组。
array()
函数的语法是
array(vector, dim = c(nrow, ncol, nmat))
这里,
vector
- 相同类型的数据项nrow
- 行数ncol
- 列数nmat
-nrow * ncol
维度的矩阵数量
让我们看一个例子,
# 创建两个 2 行 3 列的矩阵
array1 <- array(c(1:12), dim = c(2,3,2))
print(array1)
输出
, , 1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
, , 2
[,1] [,2] [,3]
[1,] 7 9 11
[2,] 8 10 12
在上面的例子中,我们使用了 array()
函数创建了名为 array1
的数组。注意传递给 array()
的参数,
array(c(1:15), dim = c(2,3,2))
这里,
c(1:12)
- 从 1 到 12 的值的向量dim = c(2,3,2)
- 创建 2 行 3 列 维度的两个矩阵
最后,1 到 12 的数字被排列在两个 2 行 3 列 的矩阵中并被打印出来。
访问数组元素
我们在 R 中使用向量索引操作符 [ ]
来访问数组的特定元素。
访问数组元素的语法是
array[n1, n2, mat_level]
这里,
n1
- 指定行位置n2
- 指定列位置mat_level
- 指定矩阵级别
让我们看一个例子,
# 创建两个 2 行 3 列的矩阵
array1 <- array(c(1:12), dim = c(2,3,2))
print(array1)
# 访问第二个矩阵中第 1 行第 3 列的元素
cat("\nDesired Element:", array1[1, 3, 2])
输出
, , 1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
, , 2
[,1] [,2] [,3]
[1,] 7 9 11
[2,] 8 10 12
Desired Element: 11
在上述示例中,我们创建了一个名为 array1
的数组,其中包含两个 2 行 3 列的矩阵。注意索引操作符 []
的使用,
array1[1, 3, 2]
这里,[1, 3, 2]
指定我们正在尝试访问第 2 个矩阵的第 1 行第 3 列的元素,即 11。
访问整个行或列
在 R 语言中,我们还可以根据在 []
中传递的值来访问整个行或列。
[c(n), ,mat_level]
- 返回第 n 行的所有元素。[ ,c(n), mat_level]
- 返回第 n 列的所有元素。
例如,
# 创建一个两个 2 行 3 列的矩阵
array1 <- array(c(1:12), dim = c(2,3,2))
print(array1)
# 访问第 1 个矩阵第 2 列的所有元素
cat("\n第 1 个矩阵第 2 列的元素:", array1[,c(2),1])
# 访问第 2 个矩阵第 1 行的所有元素
cat("\n第 2 个矩阵第 1 行的元素:", array1[c(1), ,2])
输出
, , 1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
, , 2
[,1] [,2] [,3]
[1,] 7 9 11
[2,] 8 10 12
第 1 个矩阵第 2 列的元素: 3 4
第 2 个矩阵第 1 行的元素: 7 9 11
这里,
array1[,c(2),1]
- 访问第 1 个矩阵的第 2 列元素array1[c(1), ,2]
- 访问第 2 个矩阵的第 1 行
检查元素是否存在
在 R 语言中,我们使用 %in%
运算符来检查指定元素是否存在于矩阵中,并返回一个布尔值。
TRUE
- 如果指定元素存在于矩阵中FALSE
- 如果指定 元素不存在于矩阵中
例如,
# 创建一个两个 2 行 3 列的矩阵
array1 <- array(c(1:12), dim = c(2,3,2))
11 %in% array1 # TRUE
13 %in% array1 # FALSE
输出
[1] TRUE
[2] FALSE
这里,
- 11 存在于
array1
中,所以方法返回TRUE
- 13 不存在于
array1
中,所以方法返回FALSE
R 中数组的长度
在 R 语言中,我们可以使用 length()
函数来找出数组内元素的数量。例如,
# 创建一个两个 2 行 3 列的矩阵
array1 <- array(c(1:12), dim = c(2,3,2))
# 使用 length() 找出 array1 的总元素数
cat("总元素数:", length(array1))
输出
总元素数: 12
这里,我们使用了 length()
来找出 array1
的长度。由于有两个 2 行 3 列的矩阵,length()
函数返回 12。