R 数组

数组是一种数据结构,它可以在二维以上存储相同类型的数据。

向量、矩阵和数组之间唯一的区别是

  • 向量是一维数组
  • 矩阵是二维数组
  • 数组可以有二维以上

在学习数组之前,请确保您了解 R 矩阵R 向量


在 R 中创建数组

在 R 中,我们使用 array() 函数来创建数组。

array() 函数的语法是

array(vector, dim = c(nrow, ncol, nmat))

这里,

  • vector - 相同类型的数据项
  • nrow - 行数
  • ncol - 列数
  • nmat - nrow * ncol 维度的矩阵数量

让我们看一个例子,

# create two 2 by 3 matrix
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) - 一个值从 112 的向量
  • dim = c(2,3,2) - 创建两个 23 列的矩阵

最后,打印出从 112,以两个 23 列矩阵排列的数字。


访问数组元素

我们使用向量索引运算符 [ ] 来访问 R 中数组的特定元素。

访问数组元素的语法是

array[n1, n2, mat_level]

这里,

  • n1 - 指定行位置
  • n2 - 指定列位置
  • mat_level - 指定矩阵级别

让我们看一个例子,

# create two 2 by 3 matrix
array1 <- array(c(1:12), dim = c(2,3,2))

print(array1)

# access element at 1st row, 3rd column of 2nd matrix
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 的数组,其中包含两个 23 列的矩阵。请注意索引运算符 [] 的使用,

array1[1, 3, 2]

在这里,[1, 3, 2] 指定我们正在尝试访问第 2 个矩阵的第 1 行、第 3 列中存在的元素,即 11

访问整行或整列

在 R 中,我们还可以根据 [] 中传递的值访问整行或整列。

  • [c(n), ,mat_level] - 返回第 n 行的所有元素。
  • [ ,c(n), mat_level] - 返回第 n 列的所有元素。

例如,

# create a two 2 by 3 matrix
array1 <- array(c(1:12), dim = c(2,3,2))

print(array1)


# access entire elements at 2nd column of 1st matrix
cat("\n2nd Column Elements of 1st matrix:", array1[,c(2),1])

# access entire elements at 1st row of 2nd matrix
cat("\n1st Row Elements of 2nd Matrix:", 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


2nd Column Elements of 1st matrix: 3 4
1st Row Elements of 2nd Matrix: 7 9 11

这里,

  • array1[,c(2),1] - 访问第 1 个矩阵的第 2 列元素
  • array1[c(1), ,2] - 访问第 2 个矩阵的第 1

检查元素是否存在

在 R 中,我们使用 %in% 运算符来检查指定元素是否存在于矩阵中,并返回一个布尔值。

  • TRUE - 如果指定元素存在于矩阵中
  • FALSE - 如果指定元素不存在于矩阵中

例如,

# create a two 2 by 3 matrix
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() 函数来查找数组中存在的元素数量。例如,

# create a two 2 by 3 matrix
array1 <- array(c(1:12), dim = c(2,3,2))

# find total elements in array1 using length()
cat("Total Elements:", length(array1))

输出

Total Elements: 12

在这里,我们使用 length() 来查找 array1 的长度。由于有两个 23 列的矩阵,length() 函数返回 12

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战