Exercícios - Aula 2 – Vetores, Matrizes, Dataframes e Listas
Autor
Prof. Marcelo Ribeiro
6. Exercícios
Orientação
Construam um script em R com as resoluções dos exercícios e salvem esse arquivo em uma pasta pessoal.
6.1 Exercícios sobre vetores
Exercício 1 – Sequências, operações e seleção
Crie um vetor chamado exercicio1 contendo a sequência de números pares de 2 a 20.
Depois:
Adicione 3 a todos os elementos desse vetor.
Multiplique esse vetor por 5.
Imprima o primeiro elemento desse vetor.
Imprima os últimos 3 elementos desse vetor.
Crie um novo vetor chamado final1 que tenha apenas os primeiros 5 elementos do vetor exercicio1 após as manipulações.
Exercício 2 – Vetores e números pares
Crie um vetor com os números de 1 a 100 e selecione apenas os números pares.
Exercício 3 – Valores ausentes
Considere o vetor abaixo e calcule a média ignorando os valores ausentes.
valores <-c(10, 20, NA, 40, NA, 50)
6.2 Exercícios sobre matrizes
Exercício 4 – Criando e transpondo matrizes
Crie uma matriz 3x3 com os números de 1 a 9 e calcule sua transposta.
6.3 Exercícios sobre dataframes
Comentário do professor
Nos exercícios a seguir, vamos usar um dataframe chamado alunos, que simula informações de alunos de um curso.
Exercício 5 – Explorando a estrutura do dataframe
Utilize funções úteis para avaliar a estrutura do dataframe alunos e gerar um resumo de seu conteúdo.
Exercício 6 – Acessando nomes por linha
Quais os nomes dos alunos nas linhas 3 e 4 do dataframe? Responda com um vetor para que a resposta seja avaliada corretamente.
Exercício 7 – Maior nota
Qual a maior nota entre os alunos?
Exercício 8 – Contando alunos por condição
Quantos alunos têm 25 anos ou mais?
Dica: as funções length(), sum() ou nrow() podem ser úteis.
Exercício 9 – Bolsistas abaixo da média
Liste os alunos que são bolsistas e tiveram nota abaixo da média.
Dica: não precisamos calcular e guardar a média antes, embora essa seja uma solução possível.
Exercício 10 – Alunos aprovados
Considere que a média para aprovação nessa faculdade é 6.5. Crie um novo dataframe apenas com os alunos aprovados.
Exercício 11 – Alunos em recuperação
Vamos supor que os alunos que tiverem notas até 2 pontos abaixo da média de aprovação e não conseguiram a média para passar podem ficar de recuperação no fim do semestre.
Considere que a média de aprovação é 6.5. Crie um dataframe apenas com os alunos em recuperação.
Exercício 12 – Adicionando novo aluno
Agora vamos adicionar um novo aluno ao nosso dataframe de alunos. Utilize a seguinte lista que descreve o novo aluno e junte ao dataframe alunos.
Exercício 13 – Criando coluna com cursos de humanas
Agora vamos adicionar mais uma característica dos alunos.
Crie um vetor que diga se os alunos são de cursos de humanas. Para isso, considere que são de humanas os cursos de Historia, Filosofia e Sociologia.
O vetor resultante deve ter valor TRUE para alunos desses cursos e FALSE para alunos de outros cursos. Depois, junte esse vetor como uma nova coluna no dataframe alunos.
Exercício 14 – Criando e filtrando dataframe
Crie um dataframe com nome, idade e nota de quatro alunos. Depois, filtre apenas os alunos com nota maior ou igual a 7.
6.4 Exercícios sobre listas
Exercício 15 – Criando lista
Crie uma lista contendo o dataframe alunos, o vetor de notas e uma mensagem de texto.
Código fonte
---title: "Exercícios - Aula 2 – Vetores, Matrizes, Dataframes e Listas"author: "Prof. Marcelo Ribeiro"format: html: toc: true toc-location: left number-sections: false theme: cosmo css: estilo.css page-layout: full code-fold: false code-tools: true df-print: paged self-contained: true html-math-method: mathjaxlang: pt-BReditor: visual---## 6. Exercícios::: {.callout-important title="Orientação"}Construam um *script* em R com as resoluções dos exercícios e salvem esse arquivo em uma pasta pessoal.:::### 6.1 Exercícios sobre vetores::: {.callout-important title="Exercício 1 – Sequências, operações e seleção"}Crie um vetor chamado `exercicio1` contendo a sequência de números pares de 2 a 20.Depois:1. Adicione 3 a todos os elementos desse vetor.2. Multiplique esse vetor por 5.3. Imprima o primeiro elemento desse vetor.4. Imprima os últimos 3 elementos desse vetor.5. Crie um novo vetor chamado `final1` que tenha apenas os primeiros 5 elementos do vetor `exercicio1` após as manipulações.:::```{r}#| include: falseexercicio1 <-seq(2, 20, by =2)exercicio1 <- exercicio1 +3exercicio1 <- exercicio1 *5exercicio1[1]tail(exercicio1, 3)final1 <- exercicio1[1:5]final1```::: {.callout-important title="Exercício 2 – Vetores e números pares"}Crie um vetor com os números de 1 a 100 e selecione apenas os números pares.:::```{r}#| include: falsenumeros <-1:100numeros_pares <- numeros[numeros %%2==0]numeros_pares```::: {.callout-important title="Exercício 3 – Valores ausentes"}Considere o vetor abaixo e calcule a média ignorando os valores ausentes.```rvalores <-c(10, 20, NA, 40, NA, 50)```:::```{r}#| include: falsevalores <-c(10, 20, NA, 40, NA, 50)mean(valores, na.rm =TRUE)```### 6.2 Exercícios sobre matrizes::: {.callout-important title="Exercício 4 – Criando e transpondo matrizes"}Crie uma matriz 3x3 com os números de 1 a 9 e calcule sua transposta.:::```{r}#| include: falsematriz_exercicio <-matrix(1:9, ncol =3, byrow =TRUE)matriz_exerciciot(matriz_exercicio)```### 6.3 Exercícios sobre dataframes::: {.callout-note title="Comentário do professor"}Nos exercícios a seguir, vamos usar um dataframe chamado `alunos`, que simula informações de alunos de um curso.:::```{r}#| include: falsealunos <-data.frame(nome =c("Maria", "Pedro", "Lucas", "Carla", "Ana","João", "Fernanda", "Bruno", "Camila", "Rafael" ),idade =c(20, 22, 19, 21, 25, 27, 24, 18, 26, 23),curso =c("Historia", "Matematica", "Filosofia", "Biologia", "Sociologia","Fisica", "Historia", "Quimica", "Filosofia", "Matematica" ),nota =c(8.5, 6.0, 7.2, 5.9, 9.1, 4.8, 6.4, 7.9, 5.0, 6.8),bolsista =c(TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE),uf =c("SP", "RJ", "MG", "BA", "PR", "RS", "ES", "SC", "PE", "GO"))```::: {.callout-important title="Exercício 5 – Explorando a estrutura do dataframe"}Utilize funções úteis para avaliar a estrutura do dataframe `alunos` e gerar um resumo de seu conteúdo.:::```{r}#| include: falsestr(alunos)dim(alunos)nrow(alunos)ncol(alunos)names(alunos)summary(alunos)```::: {.callout-important title="Exercício 6 – Acessando nomes por linha"}Quais os nomes dos alunos nas linhas 3 e 4 do dataframe? Responda com um vetor para que a resposta seja avaliada corretamente.:::```{r}#| include: falsealunos$nome[c(3, 4)]```::: {.callout-important title="Exercício 7 – Maior nota"}Qual a maior nota entre os alunos?:::```{r}#| include: falsemax(alunos$nota)```::: {.callout-important title="Exercício 8 – Contando alunos por condição"}Quantos alunos têm 25 anos ou mais?Dica: as funções `length()`, `sum()` ou `nrow()` podem ser úteis.:::```{r}#| include: falsesum(alunos$idade >=25)```::: {.callout-important title="Exercício 9 – Bolsistas abaixo da média"}Liste os alunos que são bolsistas e tiveram nota abaixo da média.Dica: não precisamos calcular e guardar a média antes, embora essa seja uma solução possível.:::```{r}#| include: falsealunos[alunos$bolsista ==TRUE& alunos$nota <mean(alunos$nota), ]```::: {.callout-important title="Exercício 10 – Alunos aprovados"}Considere que a média para aprovação nessa faculdade é 6.5. Crie um novo dataframe apenas com os alunos aprovados.:::```{r}#| include: falsealunos_aprovados <- alunos[alunos$nota >=6.5, ]alunos_aprovados```::: {.callout-important title="Exercício 11 – Alunos em recuperação"}Vamos supor que os alunos que tiverem notas até 2 pontos abaixo da média de aprovação e não conseguiram a média para passar podem ficar de recuperação no fim do semestre.Considere que a média de aprovação é 6.5. Crie um dataframe apenas com os alunos em recuperação.:::```{r}#| include: falsealunos_recuperacao <- alunos[alunos$nota >=4.5& alunos$nota <6.5,]alunos_recuperacao```::: {.callout-important title="Exercício 12 – Adicionando novo aluno"}Agora vamos adicionar um novo aluno ao nosso dataframe de alunos. Utilize a seguinte lista que descreve o novo aluno e junte ao dataframe `alunos`.```rnovo_aluno <-list(nome ="Jonas",idade =19,curso ="Historia",nota =7.8,bolsista =FALSE,uf ="ES")```:::```{r}#| include: falsenovo_aluno <-list(nome ="Jonas",idade =19,curso ="Historia",nota =7.8,bolsista =FALSE,uf ="ES")novo_aluno_df <-data.frame(novo_aluno)alunos <-rbind(alunos, novo_aluno_df)alunos```::: {.callout-important title="Exercício 13 – Criando coluna com cursos de humanas"}Agora vamos adicionar mais uma característica dos alunos.Crie um vetor que diga se os alunos são de cursos de humanas. Para isso, considere que são de humanas os cursos de `Historia`, `Filosofia` e `Sociologia`.O vetor resultante deve ter valor `TRUE` para alunos desses cursos e `FALSE` para alunos de outros cursos. Depois, junte esse vetor como uma nova coluna no dataframe `alunos`.:::```{r}#| include: falsecurso_humanas <- alunos$curso %in%c("Historia", "Filosofia", "Sociologia")alunos$curso_humanas <- curso_humanasalunos```::: {.callout-important title="Exercício 14 – Criando e filtrando dataframe"}Crie um dataframe com nome, idade e nota de quatro alunos. Depois, filtre apenas os alunos com nota maior ou igual a 7.:::```{r}#| include: falsealunos_exemplo <-data.frame(nome =c("Maria", "Pedro", "Lucas", "Carla"),idade =c(20, 22, 19, 21),nota =c(8.5, 6.0, 7.2, 5.9))alunos_exemploalunos_exemplo[alunos_exemplo$nota >=7, ]```### 6.4 Exercícios sobre listas::: {.callout-important title="Exercício 15 – Criando lista"}Crie uma lista contendo o dataframe `alunos`, o vetor de notas e uma mensagem de texto.:::```{r}#| include: falselista_alunos <-list(dados = alunos,notas = alunos$nota,mensagem ="Lista criada com sucesso")lista_alunos```