R语言 数组操作

R语言 数组操作

数组是R的数据对象,它以两个以上的维度存储数据。数组是n维的数据结构。例如,如果我们创建一个维度为(2,3,3)的数组,那么它将创建3个矩形矩阵,每个矩阵有2行和3列。它们是同质的数据结构。

现在,让我们看看如何在R中创建数组。要在R中创建一个数组,你需要使用名为array()的函数。这个array()的参数是向量中的元素集合,你必须传递一个包含数组尺寸的向量。

Array_NAME <- array(data, dim = (row_Size, column_Size, matrices, dimnames)

其中

data - 给予数组的输入向量。

matrices - 由多维矩阵组成。

row_Size - 数组可存储的行元素数量。

column_Size - 数组可存储的列元素数量。

dimnames - 用于根据用户的偏好改变行和列的默认名称。

例如

# Create the vectors with different length
vector1 <- c(1, 2, 3)
vector2 <- c(10, 15, 3, 11, 16, 12)
  
# taking this vector as input
result <- array(c(vector1, vector2), dim = c(3, 3, 2))
print(result)

输出

, , 1

     [,1] [,2] [,3]
[1,]    1   10   11
[2,]    2   15   16
[3,]    3    3   12

, , 2

     [,1] [,2] [,3]
[1,]    1   10   11
[2,]    2   15   16
[3,]    3    3   12

对数组的操作

命名列和行

我们可以用dimnames给行和列命名。

例子

# Creating Vectors
vector1 <- c(1, 2, 3)
vector2 <- c(10, 15, 3, 11, 16, 12)
  
# Giving Names to rows and columns
column.names <- c("COLUMN1", "COLUMN2", "COLUMN3")
row.names <- c("ROW1", "ROW2", "ROW3")
matrix.names <- c("Matrix.NO1", "Matrix.NO2")
  
# taking this vector as input
result <- array(c(vector1, vector2), dim = c(3, 3, 2), 
                  dimnames = list(row.names, column.names, matrix.names))
print(result)

输出

, , Matrix.NO1

     COLUMN1 COLUMN2 COLUMN3
ROW1       1      10      11
ROW2       2      15      16
ROW3       3       3      12

, , Matrix.NO2

     COLUMN1 COLUMN2 COLUMN3
ROW1       1      10      11
ROW2       2      15      16
ROW3       3       3      12

操纵数组元素

数组是由多个维度组成的,操作是通过访问元素来进行的。

例子

# creating two vectors of different length
# and taking vector as input
vector1 <- c(1, 2, 3)
vector2 <- c(4, 6, 8, 0, 2, 4)
array1 <- array(c(vector1, vector2), dim = c(3, 3, 2))
  
# creating other array
vector3 <- c(3, 2, 1)
vector4 <- c(2, 4, 6, 8, 3, 5)
array2 <- array(c(vector3, vector4), dim = c(3, 3, 2))
  
# create matrices and add them
matrix1 <- array1[,,2]
matrix2 <- array2[,,2]
result <- matrix1 + matrix2
print(result)

输出

     [,1] [,2] [,3]
[1,]    4    6    8
[2,]    4   10    5
[3,]    4   14    9

访问阵列元素

使用矩阵中的索引位置可以很容易地访问任何元素。此外,我们还可以使用索引位置改变/更改数组中的元素。
语法

Array_Name[row_position, Column_Position, Matrix_Level]

例子

# Creating Vectors
vector1 <- c(1, 2, 3)
vector2 <- c(10, 15, 3, 11, 16, 12)
column.names <- c("COLUMN1", "COLUMN2", "COLUMN3")
row.names <- c("ROW1", "ROW2", "ROW3")
matrix.names <- c("Matrix.NO1", "Matrix.NO2")
  
# taking vector as input
result <- array(c(vector1, vector2), dim = c(3, 3, 2), 
                  dimnames = list(row.names, column.names, matrix.names))
print(result)
  
# print third row of second matrix
print(result[3,,2])

输出

, , Matrix.NO1

     COLUMN1 COLUMN2 COLUMN3
ROW1       1      10      11
ROW2       2      15      16
ROW3       3       3      12

, , Matrix.NO2

     COLUMN1 COLUMN2 COLUMN3
ROW1       1      10      11
ROW2       2      15      16
ROW3       3       3      12

COLUMN1 COLUMN2 COLUMN3 
      3       3      12 

跨数组元素的计算

apply()函数用于跨数组元素的计算。

语法

apply(x, margin, fun)

其中,

x - 一个数组。

margin - 使用的数据集的名称。

fun - 应用于数组元素的函数。

例子

# create two vectors and take them as input in array
vector1 <- c(3, 2, 1)
vector2 <- c(2, 4, 6, 8, 0, 1)
new.array <- array(c(vector1, vector2), dim = c(3, 3, 2))
print(new.array)
  
# using apply and calculate the sum of rows in matrices
result <- apply(new.array, c(1), sum)
print(result)

输出

, , 1

     [,1] [,2] [,3]
[1,]    3    2    8
[2,]    2    4    0
[3,]    1    6    1

, , 2

     [,1] [,2] [,3]
[1,]    3    2    8
[2,]    2    4    0
[3,]    1    6    1

[1] 26 12 16

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程