Exercícios

  1. Dadas 3 variáveis com valores numéricos, apresentar o resultado da soma das combinações dois a dois destes três números. Por exemplo, variáveis A, B e C, mostrar A + B, A + C, B + C.
# Definindo variáveis
A <- 5
B <- 3
C <- 2

# Soma das combinações
A + B
## [1] 8
A + C
## [1] 7
B + C
## [1] 5
  1. Definir duas variáveis A e B e trocar seus valores. Ex: Entrada: A=6 e B=8 Saída: A=8 e B=6.
A <- 6
B <- 8

# Troca
aux <- A
A <- B
B <- aux

print(A)
## [1] 8
print(B)
## [1] 6
  1. Converter uma temperatura de Fahrenheit para Centígrados. C = (F - 32) * ( 5 / 9 ).
F <- 100

C <- (F - 32) * (5/9)

print(C)
## [1] 37.77778
  1. Escrever um algoritmo que defina um número X e calcule:
  1. X³-4
  2. O resto da divisão de X / 3
  3. X(x/3) + 2
  4. Raiz quadrada de X²
X <- 6

# a)
X^3 - 4
## [1] 212
# b)
X %% 3
## [1] 0
# c)
X * (X/3) + 2
## [1] 14
# d)
sqrt(X^2)
## [1] 6
  1. Crie um vetor numérico com os números de 1 a 10 e armazene-o em uma variável chamada “numeros”. Em seguida, imprima o vetor.
numeros <- 1:10
sum(numeros)
## [1] 55
print ("numeros")
## [1] "numeros"
  1. Crie um vetor de caracteres com os nomes dos dias da semana e armazene-o em uma variável chamada “dias”. Em seguida, imprima o vetor.
dias <- c("Segunda", "Terca", "Quarta", "Quinta", "Sexta", "Sabado", "Domingo")

dias
## [1] "Segunda" "Terca"   "Quarta"  "Quinta"  "Sexta"   "Sabado"  "Domingo"
print ("dias")
## [1] "dias"
  1. Crie uma matriz 3x3 com os números de 1 a 9 e armazene-a em uma variável chamada “matriz”. Em seguida, imprima a matriz.
matriz <- matrix(1:9, nrow = 3, byrow = TRUE)
matriz
##      [,1] [,2] [,3]
## [1,]    1    2    3
## [2,]    4    5    6
## [3,]    7    8    9
  1. Crie um data-frame com as informações de 3 pessoas: nome (caracter), idade (numérico) e cidade natal (caracter). Armazene o data-frame em uma variável chamada “pessoas” e imprima
pessoas <- data.frame(
  nome = c("Ana", "Joao", "Carlos"),
  idade = c(25, 30, 22),
  cidade = c("Rio", "São Paulo", "Acre")
)

pessoas
##     nome idade    cidade
## 1    Ana    25       Rio
## 2   Joao    30 São Paulo
## 3 Carlos    22      Acre
print("pessoas")
## [1] "pessoas"
  1. Limpe as variáveis que estão no sistema e em seguida crie 3 variáveis, x, y e z e atribua valores numéricos para elas. Em seguida realize comparações entre elas (utilize TODOS os operadores de comparação (<. <. >=, <=, ==, !=).
rm(list = ls())
x <- 10; y <- 20; z <- 10
x < y; x > y; x >= z; x <= y; x == z; x != y
## [1] TRUE
## [1] FALSE
## [1] TRUE
## [1] TRUE
## [1] TRUE
## [1] TRUE
  1. Limpe as variáveis que estão no sistema e em seguida crie 3 variáveis, “rua”, “numero” e “bairro” e atribua valores (texto) para elas. Em seguida concatene essas variáveis em uma terceira chamada “endereco”.
rm(list = ls())

rua <- "Rua itobi"
numero <- "40"
bairro <- "Meier"

endereco <- paste(rua, numero, bairro)

endereco
## [1] "Rua itobi 40 Meier"
  1. Elabore um algoritmo que:
  1. Crie um vetor com uma sequência de 10 números.
  2. Faça um loop para calcular a soma dos números do vetor.
  3. Utilize o comando “vetor <- c(1:10)” para criar o vetor.
  4. Utilize o comando “for( i in 1:10) { …comandos}” para realizar a soma.
  5. Referencie os valores do vetor com o comando: “vetor[i]”, onde “i” é o índice referência (número) Ex. vetor: 1,2,3,4,5,6,7,8,9,10 | Soma dos números = 55.
vetor <- c(1:10)
soma <- 0
for(i in 1:10) {
  soma <- soma + vetor[i]
}
print(paste("Soma dos números =", soma))
## [1] "Soma dos números = 55"
  1. A partir do exercício anterior, faça a média dos valores contidos no vetor.
media <- soma / length(vetor)
print(paste("Média =", media))
## [1] "Média = 5.5"
  1. Crie duas variáveis, x e y. Compare se x é maior que y. Se for, imprima “x é maior que y”, se não for, imprima “y é maior que x”.
  1. A sintaxe do comando de comparação é: if (x > y) {comandos…} else {comandos}
  2. O comando print(“texto ou variável”) imprime a resposta na tela.
x <- 15; y <- 10
if (x > y) {
  print("x é maior que y")
} else {
  print("y é maior que x")
}
## [1] "x é maior que y"
  1. Repita o exercício “14)” realizando os seguintes ajustes:
  1. Substitua o sinal de maior (“>”) pelo de menor ou igual (“<=”) e ajuste dos dizeres da resposta.
x <- 5
y <- 10

if(x <= y){
  print("x é menor ou igual a y")
} else {
  print("x é maior que y")
}
## [1] "x é menor ou igual a y"
  1. A partir do exercício “5)”, faça a soma somente dos números pares.
  1. Utilize o comando “%%” para identificar o resto da divisão. Ex: “5%%2”, cinco dividido por dois terá como resto “1”. Ou seja, o resultado dessa operação será “1”.
  2. Utilize o comando de decisão “if” para saber se o número é par ou ímpar.
# recria o vetor (porque foi apagado pelo rm)
numeros <- 1:10

# inicializa a variável
soma_pares <- 0

for(n in numeros) {
  if (n %% 2 == 0) {
    soma_pares <- soma_pares + n
  }
}

print(paste("Soma dos pares =", soma_pares))
## [1] "Soma dos pares = 30"
  1. Faça um algoritmo que calcule e imprima o fatorial de um número inteiro.
n_fatorial <- 5
resultado_fat <- 1
for(i in 1:n_fatorial) {
  resultado_fat <- resultado_fat * i
}
print(paste("Fatorial de", n_fatorial, "=", resultado_fat))
## [1] "Fatorial de 5 = 120"
  1. Crie uma matriz 4x4.
  1. Uma matriz no R comporta somente um tipo de dado (número, texto ou boleano).
  2. O comando para criar a matriz é “x <- matrix(data = 1, nrow = 4, ncol = 4, byrow = TRUE)”
x <- matrix(data = 1, nrow = 4, ncol = 4, byrow = TRUE)
x
##      [,1] [,2] [,3] [,4]
## [1,]    1    1    1    1
## [2,]    1    1    1    1
## [3,]    1    1    1    1
## [4,]    1    1    1    1
  1. Agora, crie uma matriz com a sequência de 1 a 16.
x <- matrix(1:16, nrow = 4, byrow = TRUE)
x
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    5    6    7    8
## [3,]    9   10   11   12
## [4,]   13   14   15   16
  1. Transforme essa matriz em um data.frame
  1. Um data.frame é uma estrutura de dados similar a matriz que pode conter dados diferentes em suas variáveis.
  2. Lembre-se que também chamamos as colunas de variáveis e as linhas de registros.
  3. Uma variável (coluna) não pode conter dados diferentes. Ou todas as linhas dessa variável são números, ou todas são texto, ou ainda, boleanos.
  4. Utilize o comando “df <- as.data.frame(x)”
df <- as.data.frame(x)
df
##   V1 V2 V3 V4
## 1  1  2  3  4
## 2  5  6  7  8
## 3  9 10 11 12
## 4 13 14 15 16
  1. Utilizando os comandos de repetição e decisão (se for necessário), calcule:
  1. a média de uma coluna da matriz do exercício “12)”.
  2. A média de todas as colunas da matriz do exercício “12)”.
  3. A média de todas as linhas da matriz do exercício “12)”.
  4. A média dos números pares de todas as colunas da matriz do exercício “12)”.
  5. A média dos números ímpares de todas as linhas da matriz do exercício “12)”.
  6. A soma da diagonal principal da matriz.
  7. A soma da diagonal secundária da matriz (desafio).
# a) média de uma coluna
mean(x[,1])
## [1] 7
# b) média de todas as colunas
colMeans(x)
## [1]  7  8  9 10
# c) média das linhas
rowMeans(x)
## [1]  2.5  6.5 10.5 14.5
# d) média dos pares por coluna
pares <- x[x %% 2 == 0]
mean(pares)
## [1] 9
# e) média dos ímpares
impares <- x[x %% 2 != 0]
mean(impares)
## [1] 8
# f) diagonal principal
sum(diag(x))
## [1] 34
# g) diagonal secundária
sum(diag(apply(x, 2, rev)))
## [1] 34
  1. Repita o exercício “14)” com os dados do data.frame do exercício “13)”.
df <- as.data.frame(x)

if(df[1,1] <= df[2,1]){
  print("menor ou igual")
} else {
  print("maior")
}
## [1] "menor ou igual"
  1. Crie um loop for que imprime os números de 1 a 10.
for(i in 1:10){
  print(i)
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6
## [1] 7
## [1] 8
## [1] 9
## [1] 10
  1. Crie um vetor numérico com os números de 1 a 100. Em seguida, crie um novo vetor que contenha apenas os números pares do vetor original.
vetor <- 1:100
pares <- vetor[vetor %% 2 == 0]
pares
##  [1]   2   4   6   8  10  12  14  16  18  20  22  24  26  28  30  32  34  36  38
## [20]  40  42  44  46  48  50  52  54  56  58  60  62  64  66  68  70  72  74  76
## [39]  78  80  82  84  86  88  90  92  94  96  98 100
  1. Crie uma função chamada “maior_elemento” que recebe um vetor numérico como argumento e retorna o maior elemento do vetor. Em seguida, teste a função com o vetor c(10, 5, 8, 2, 20, 15).
maior_elemento <- function(vetor){
  return(max(vetor))
}

maior_elemento(c(10, 5, 8, 2, 20, 15))
## [1] 20