English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Os arrays também são objetos em R, e R pode criar arrays unidimensionais ou multidimensionais.
Os arrays em R são conjuntos de tipos de dados idênticos, e a matriz matrix que aprendemos anteriormente é realmente um array bidimensional.
A relação entre vetores, matrizes e arrays pode ser vista na figura a seguir:
A criação de arrays em R usa a função array(), que usa vetores como parâmetros de entrada e pode usar dim para definir a dimensão do array.
A sintaxe do formato da função array() é a seguinte:
array(data = NA, dim = length(data), dimnames = NULL)
Descrição dos Parâmetros:
Vetor data, elementos do array.
Dimensões do array, por padrão é um array unidimensional.
Os nomes das dimensões do dimnames devem ser uma lista, por padrão, não há configuração de nomes.
Neste exemplo, criamos um 3 Linhas 3 Array bidimensional de colunas:
# Criação de dois vetores de diferentes tamanhos vector1 <- c(5,9,3) vector2 <- c(10,11,12,13,14,15) # Criação de array result <- array(c(vector1,vector2),dim = c(3,3,2)) print(result)
O resultado da execução do código acima é:
, , 1 [[1]] [,2]] [,3] [1,] 5 10 13 [2,] 9 11 14 [3,] 3 12 15 , , 2 [[1]] [,2]] [,3] [1,] 5 10 13 [2,] 9 11 14 [3,] 3 12 15
Use o parâmetro dimnames para configurar os nomes das dimensões::
# Criação de dois vetores de diferentes tamanhos vector1 <- c(5,9,3) vector2 <- c(10,11,12,13,14,15) nomes <- c("COL1","COLUNA2","COLUNA3") row.names <- c("LINHA1","LINHA2","LINHA3") matrix.names <- c("Matrix1","Matrix2") # Criação de array, e configuração dos nomes das dimensões result <- array(c(vector1,vector2),dim = c(3,3,2),dimnames = list(row.names,column.names,matrix.names)) print(result)
O resultado da execução do código acima é:
, , Matrix1 COLUNA1 COLUNA2 COLUNA3 LINHA1 5 10 13 LINHA2 9 11 14 LINHA3 3 12 15 , , Matrix2 COLUNA1 COLUNA2 COLUNA3 LINHA1 5 10 13 LINHA2 9 11 14 LINHA3 3 12 15
Se quiser obter elementos de um array, pode usar o índice de coluna e linha do elemento, similar a um sistema de coordenadas.
# Criação de dois vetores de diferentes tamanhos vector1 <- c(5,9,3) vector2 <- c(10,11,12,13,14,15) nomes <- c("COL1","COLUNA2","COLUNA3") row.names <- c("LINHA1","LINHA2","LINHA3") matrix.names <- c("Matrix1","Matrix2") # Criação de array result <- array(c(vector1,vector2),dim = c(3,3,2),dimnames = list(row.names, column.names, matrix.names)) # Exibir o elemento da terceira linha da segunda matriz do array print(result[3,,,2]) # Exibir o elemento da terceira coluna da primeira linha da primeira matriz do array print(result[1,3,1]) # Output da Segunda Matriz print(result[,,2])
O resultado da execução do código acima é:
COLUNA1 COLUNA2 COLUNA3 3 12 15 [1] 13 COLUNA1 COLUNA2 COLUNA3 LINHA1 5 10 13 LINHA2 9 11 14 LINHA3 3 12 15
Como o array é composto por várias matrizes dimensionais, podemos acessar elementos do array através de elementos de matrizes.
# Criação de dois vetores de diferentes tamanhos vector1 <- c(5,9,3) vector2 <- c(10,11,12,13,14,15) # Criação de array array1 <- array(c(vector1,vector2),dim = c(3,3,2)) # Criação de dois vetores de diferentes tamanhos vector3 <- c(9,1,0) vector4 <- c(6,0,11,3,14,1,2,6,9) array2 <- array(c(vector1,vector2),dim = c(3,3,2)) # Criação de Matriz a partir de Array matrix1 <- array1[,,2] matrix2 <- array2[,,2] # Adição de Matrizes result <- matrix1+matrix2 print(result)
O resultado da execução do código acima é:
[[1]] [,2]] [,3] [1,] 10 20 26 [2,] 18 22 28 [3,] 6 24 30
Além disso, podemos usar apply() Elementos realizam cálculos transdimensionais em elementos do array, formatando-se conforme a seguir:
apply(x, margem, fun)
Descrição dos Parâmetros:
x Array
Margem Nome dos Dados
fun Função de Cálculo
A seguir, usamos a função apply() para calcular a soma dos números de cada linha de duas matrizes do array.
# Criação de dois vetores de diferentes tamanhos vector1 <- c(5,9,3) vector2 <- c(10,11,12,13,14,15) # Criação de array new.array <- array(c(vector1,vector2),dim = c(3,3,2)) print(new.array) # Soma dos números da primeira linha de todas as matrizes do array result <- apply(new.array, c(1), sum) print(result)
O resultado da execução do código acima é:
, , 1 [[1]] [,2]] [,3] [1,] 5 10 13 [2,] 9 11 14 [3,] 3 12 15 , , 2 [[1]] [,2]] [,3] [1,] 5 10 13 [2,] 9 11 14 [3,] 3 12 15