<-1:20
x
xattributes(x)
<-matrix(x, 4, 5)
m
mattributes(m)
dim(x)<-c(4,5)
xidentical(x, m)
<-1:5
a<--1:-5
b<-c(3, 6, 4, 9, 1)
c# a função cbind() concatena colunas
<-cbind(a, b, c)
m
m# a função rbind() concatena linhas
<-rbind(a, b, c)
m1
m1# elementos são acessados pelos índices das duas dimenções [linha, coluna]
1,3]
m[# toda a linha
1, ]
m[2:3, ]
m[# atribuição
1,]<-NA
m[ m
4 Matrizes
Matrizes são vetores bidimensionais que possuem o atributo dimensão. Por serem vetores, comportam apenas uma classe de elementos:
Como são vetores, matrizes comportam somente uma classe de elementos
4.1 Arrays
Um array
é um vetor que possui mais de duas dimensões:
# criando um vetor multidimensional com 4 matrizes de 5 linhas e 10 colunas
<-array(1:200, c(5, 10, 4))
ar
ar# acessando a primeira matriz [linha, coluna, matriz]
1] ar[,,
4.2 Listas
Listas são tipos especiais de vetores que comportam elementos de diferentes classes:
<- c(1, 3, NA, 7, 9)
a <-matrix(1:200, 20,10)
b<-"Gol do Gremio"
c<-factor(c("alto", "baixo", "medio"))
z<-list(a, b, c, z)
ls# cada elemento da lista aparece com [[]]
ls # a função vector() pode criar listas vazias
<-vector("list", 5)
ls1 ls1
4.2.1 Trabalhando com listas
Listas podem ser acessadas com os operadores []
, [[]]
e $
(para listas nomeadas):
# [] extrai uma lista
1]
ls[# [[]] extrai o objeto interno
1]]
ls[[class(ls[1])
class(ls[[1]])
# posição na lista e posição no elemento
c(1,2)]]
ls[[2]][2,]
ls[[names(ls)<-c("Arilson", "Roger", "Paulo Nunes", "Jardel")
$Roger ls
4.3 Desafio
Os desafios a seguir foram criados para ajudá-lo a desenvolver suas habilidades de forma independente.
Evite o uso de Inteligência Artificial e tente resolver os problemas por conta própria.
Aprender com a prática fortalecerá seu raciocínio e aprofundará seu conhecimento! 🚀
- Considere o seguinte vetor:
<- 1:18 x
Com este vetor, construa uma matriz de 6 linhas e 3 colunas de duas maneiras diferentes.
Adicione o seguinte vetor como um coluna da matriz:
<- letters[1:6] v
O que acontece quando juntamos este vetor à matriz?
Atribua nomes às colunas e às linhas:
- Considere a seguinte matriz:
set.seed(1)
<- matrix(sample(1:100, 20), nrow = 4, ncol = 5) m
Ordene, de maneira crescente, as linhas da matriz de acordo com os valores da coluna 1.
Exclua as colunas 2 e 4 desta matriz.
Crie um outro objeto para guardar o valor da soma das colunas desta matriz.
- Considere o objeto ‘x’:
<- list(list(list()))
x
# A função 'str()' mostra a estrutura de um objeto.
str(x)
# A função 'is.recursive()' indica se um objeto é recursivo
is.recursive(x)
# Agora conside a seguinte lista:
<- list(list(1, 2), 1:10, letters[1:5]) ls
Como os objetos da classe das listas diferem dos vetores atômicos?
Use a função ‘length’ na lista ‘ls’ acima. O que ela retorna?
Qual a classe de cada elemento desta lista?
Atribua nomes a cada um elementos desta lista.
Qual é a diferença entre as saídas dos dois comandos abaixo?
2]
ls[2]] ls[[
- Obtenha os valores (acesse os elementos de duas formas diferentes):
## 1) do 3º elemento da 2ª posição da lista:
## 2) os elementos 1 ao 4 da terceira posição da lista.
- Considere o vetor:
<- 1:12 b
Com este vetor, crie dois objetos do tipo ‘array’, usando duas abordagens diferentes.