Agora, vou começar a fazer o meu documento de recuperação.
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.
A <- 2
B <- 4
C <- 3
A + B
## [1] 6
B + C
## [1] 7
A + C
## [1] 5
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 <- 8
B <- 6
Aux <- B
B <- A
A <- Aux
cat("A =", A, "\n")
## A = 6
cat ("B =", B)
## B = 8
Converter uma temperatura de Fahrenheit para Centígrados. C = (F - 32) * ( 5 / 9 ).
F <- 77
C <- (F - 32) * (5 / 9)
cat(F, "graus Fahrenheit equivalem a", C, "graus Centígrados.\n")
## 77 graus Fahrenheit equivalem a 25 graus Centígrados.
Escrever um algoritmo que defina um número X e calcule: a) X3 - 4 b) O resto da divisão de X / 3 c) X(x/3) + 2 d) Raiz quadrada de X2 d) Raiz quadrada de X2
X <- 6
# a) X^3 - 4
item_a <- X^3 - 4
# b) Resto da divisão de X por 3 (operador %%)
item_b <- X %% 3
# c) X * (X / 3) + 2
item_c <- X * (X / 3) + 2
# d) Raiz quadrada de X^2
item_d <- sqrt(X^2)
# Exibindo os resultados formatados
cat("Para X =", X, "\n")
## Para X = 6
cat("a) X^3 - 4 =", item_a, "\n")
## a) X^3 - 4 = 212
cat("b) Resto de X / 3 =", item_b, "\n")
## b) Resto de X / 3 = 0
cat("c) X * (X / 3) + 2 =", item_c, "\n")
## c) X * (X / 3) + 2 = 14
cat("d) Raiz quadrada de X^2 =", item_d, "\n")
## d) Raiz quadrada de X^2 = 6
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
print(numeros)
## [1] 1 2 3 4 5 6 7 8 9 10
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", "Terça", "Quarta", "Quinta", "Sexta", "Sábado", "Domingo")
print(dias)
## [1] "Segunda" "Terça" "Quarta" "Quinta" "Sexta" "Sábado" "Domingo"
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, ncol = 3, byrow = TRUE)
print(matriz)
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
## [3,] 7 8 9
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-o.
pessoas <- data.frame(
nome = c("Catherine", "Renan", "Bella"),
idade = c(27, 35, 20),
cidade_natal = c("Rio de Janeiro", "Cabo frio", "Marica")
)
print(pessoas)
## nome idade cidade_natal
## 1 Catherine 27 Rio de Janeiro
## 2 Renan 35 Cabo frio
## 3 Bella 20 Marica
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
print(x < y)
## [1] TRUE
print(x > y)
## [1] FALSE
print(x <= z)
## [1] TRUE
print(y >= x)
## [1] TRUE
print(x == z)
## [1] TRUE
print(x != y)
## [1] TRUE
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 Daniel Carneiro"
numero <- "132"
bairro <- "Engenho de Dentro"
endereco <- paste(rua, numero, bairro, sep = ", ")
print(endereco)
## [1] "Rua Daniel Carneiro, 132, Engenho de Dentro"
Elabore um algoritmo que:
a) Crie um vetor com uma sequência de 10 números.
b) Faça um loop para calcular a soma dos números do vetor.
i) Utilize o comando vetor <- c(1:10) para criar o vetor.
ii) Utilize o comando for(i in 1:10) { …comandos} para realizar a
soma.
iii) Referencie os valores do vetor com o comando: vetor[i], onde i é o
índice referência (número).
vetor <- c(1:10)
soma <- 0
for(i in 1:10) {
soma <- soma + vetor[i]
}
print(soma)
## [1] 55
A partir do exercício anterior, faça a média dos valores contidos no vetor.
media_vetor <- soma / length(vetor)
print(media_vetor)
## [1] 5.5
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”. a) A
sintaxe do comando de comparação é: if (x > y) {comandos…} else
{comandos}.
b) 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"
Repita o exercício “13)” realizando os seguintes ajustes:
x <- 15
y <- 10
if (x <= y) {
print("x é menor ou igual a y")
} else {
print("x é maior que y (logo, y não é menor ou igual a x)")
}
## [1] "x é maior que y (logo, y não é menor ou igual a x)"
A partir do exercício “11)”, faça a soma somente dos números
pares.
a) Utilize o comando “%%” para identificar o resto da divisão. Ex:
“5%%2”, cinco dividido por dois terá como resto “1”.
b) Utilize o comando de decisão “if” para saber se o número é par (o
resto é zero) ou ímpar (o resto é 1).
c) Crie uma variável auxiliar para guardar o resultado da soma.
vetor <- c(1:10)
soma_pares <- 0
for(i in 1:length(vetor)) {
if (vetor[i] %% 2 == 0) {
soma_pares <- soma_pares + vetor[i]
}
}
print(soma_pares)
## [1] 30
Faça um algoritmo que calcule e imprima o fatorial de um número inteiro.
n <- 5
fatorial <- 1
if (n < 0) {
print("Fatorial não existe para números negativos.")
} else if (n == 0 || n == 1) {
fatorial <- 1
} else {
for(i in 1:n) {
fatorial <- fatorial * i
}
}
cat("O fatorial de", n, "é", fatorial)
## O fatorial de 5 é 120
Crie uma matriz 4x4.a) Uma matriz no R comporta somente um tipo de
dado (número, texto ou booleano).
b) 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)
print(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
Agora, crie uma matriz com a sequência de 1 a 16.
x <- matrix(1:16, nrow = 4, ncol = 4, byrow = TRUE)
print(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
Transforme essa matriz em um data.frame.
a) Um data.frame é uma estrutura de dados similar à matriz que pode
conter dados diferentes em suas variáveis.
b) Lembre-se que também chamamos as colunas de variáveis e as linhas de
registros.
c) 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,
booleanos.
d) Utilize o comando df <- as.data.frame(x).
df <- as.data.frame(x)
print(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
Utilizando os comandos de repetição e decisão, calcule:
a) a média de uma coluna da matriz do exercício “18)”.
b) A média de todas as colunas da matriz do exercício “18)”.
c) A média de todas as linhas da matriz do exercício “18)”.
d) A média dos números pares de todas as colunas da matriz do exercício
“18)”.
e) A média dos números ímpares de todas as linhas da matriz do exercício
“18)”.
f) A soma da diagonal principal da matriz.
g) A soma da diagonal secundária da matriz (desafio).
x <- matrix(1:16, nrow = 4, ncol = 4, byrow = TRUE)
# a) Média de uma coluna (ex: coluna 1)
soma_col1 <- 0
for(i in 1:nrow(x)) {
soma_col1 <- soma_col1 + x[i, 1]
}
media_col1 <- soma_col1 / nrow(x)
cat("a) Média da coluna 1:", media_col1, "\n")
## a) Média da coluna 1: 7
# b) Média de todas as colunas
medias_colunas <- c()
for(j in 1:ncol(x)) {
soma_col <- 0
for(i in 1:nrow(x)) {
soma_col <- soma_col + x[i, j]
}
medias_colunas[j] <- soma_col / nrow(x)
}
cat("b) Média de todas as colunas:", medias_colunas, "\n")
## b) Média de todas as colunas: 7 8 9 10
# c) Média de todas as linhas
medias_linhas <- c()
for(i in 1:nrow(x)) {
soma_linha <- 0
for(j in 1:ncol(x)) {
soma_linha <- soma_linha + x[i, j]
}
medias_linhas[i] <- soma_linha / ncol(x)
}
cat("c) Média de todas as linhas:", medias_linhas, "\n")
## c) Média de todas as linhas: 2.5 6.5 10.5 14.5
# d) Média dos números pares de todas as colunas
soma_pares_mat <- 0
qtd_pares_mat <- 0
for(i in 1:nrow(x)) {
for(j in 1:ncol(x)) {
if(x[i, j] %% 2 == 0) {
soma_pares_mat <- soma_pares_mat + x[i, j]
qtd_pares_mat <- qtd_pares_mat + 1
}
}
}
media_pares_mat <- soma_pares_mat / qtd_pares_mat
cat("d) Média dos números pares da matriz:", media_pares_mat, "\n")
## d) Média dos números pares da matriz: 9
# e) Média dos números ímpares de todas as linhas
soma_impares_mat <- 0
qtd_impares_mat <- 0
for(i in 1:nrow(x)) {
for(j in 1:ncol(x)) {
if(x[i, j] %% 2 != 0) {
soma_impares_mat <- soma_impares_mat + x[i, j]
qtd_impares_mat <- qtd_impares_mat + 1
}
}
}
media_impares_mat <- soma_impares_mat / qtd_impares_mat
cat("e) Média dos números ímpares da matriz:", media_impares_mat, "\n")
## e) Média dos números ímpares da matriz: 8
# f) Soma da diagonal principal da matriz
soma_dp <- 0
for(i in 1:nrow(x)) {
soma_dp <- soma_dp + x[i, i]
}
cat("f) Soma da diagonal principal:", soma_dp, "\n")
## f) Soma da diagonal principal: 34
# g) Soma da diagonal secundária da matriz (desafio)
soma_ds <- 0
n_linhas <- nrow(x)
for(i in 1:n_linhas) {
soma_ds <- soma_ds + x[i, n_linhas - i + 1]
}
cat("g) Soma da diagonal secundária:", soma_ds, "\n")
## g) Soma da diagonal secundária: 34
Repita o exercício “20)” com os dados do data.frame do exercício “18)”.
x <- matrix(1:16, nrow = 4, ncol = 4, byrow = TRUE)
df <- as.data.frame(x)
# a) Média da coluna 1 do data.frame
soma_df_col1 <- 0
for(i in 1:nrow(df)) {
soma_df_col1 <- soma_df_col1 + df[i, 1]
}
media_df_col1 <- soma_df_col1 / nrow(df)
cat("a) Média da coluna 1 (data.frame):", media_df_col1, "\n")
## a) Média da coluna 1 (data.frame): 7
# b) Média de todas as colunas do data.frame
medias_df_colunas <- c()
for(j in 1:ncol(df)) {
soma_col_df <- 0
for(i in 1:nrow(df)) {
soma_col_df <- soma_col_df + df[i, j]
}
medias_df_colunas[j] <- soma_col_df / nrow(df)
}
cat("b) Média de todas as colunas (data.frame):", medias_df_colunas, "\n")
## b) Média de todas as colunas (data.frame): 7 8 9 10
# c) Média de todas as linhas do data.frame
medias_df_linhas <- c()
for(i in 1:nrow(df)) {
soma_linha_df <- 0
for(j in 1:ncol(df)) {
soma_linha_df <- soma_linha_df + df[i, j]
}
medias_df_linhas[i] <- soma_linha_df / ncol(df)
}
cat("c) Média de todas as linhas (data.frame):", medias_df_linhas, "\n")
## c) Média de todas as linhas (data.frame): 2.5 6.5 10.5 14.5
# d) Média dos números pares no data.frame
soma_pares_df <- 0
qtd_pares_df <- 0
for(i in 1:nrow(df)) {
for(j in 1:ncol(df)) {
if(df[i, j] %% 2 == 0) {
soma_pares_df <- soma_pares_df + df[i, j]
qtd_pares_df <- qtd_pares_df + 1
}
}
}
media_pares_df <- soma_pares_df / qtd_pares_df
cat("d) Média dos números pares (data.frame):", media_pares_df, "\n")
## d) Média dos números pares (data.frame): 9
# e) Média dos números ímpares no data.frame
soma_impares_df <- 0
qtd_impares_df <- 0
for(i in 1:nrow(df)) {
for(j in 1:ncol(df)) {
if(df[i, j] %% 2 != 0) {
soma_impares_df <- soma_impares_df + df[i, j]
qtd_impares_df <- qtd_impares_df + 1
}
}
}
media_impares_df <- soma_impares_df / qtd_impares_df
cat("e) Média dos números ímpares (data.frame):", media_impares_df, "\n")
## e) Média dos números ímpares (data.frame): 8
# f) Soma da diagonal principal do data.frame
soma_dp_df <- 0
for(i in 1:nrow(df)) {
soma_dp_df <- soma_dp_df + df[i, i]
}
cat("f) Soma da diagonal principal (data.frame):", soma_dp_df, "\n")
## f) Soma da diagonal principal (data.frame): 34
# g) Soma da diagonal secundária do data.frame
soma_ds_df <- 0
n_linhas_df <- nrow(df)
for(i in 1:n_linhas_df) {
soma_ds_df <- soma_ds_df + df[i, n_linhas_df - i + 1]
}
cat("g) Soma da diagonal secundária (data.frame):", soma_ds_df, "\n")
## g) Soma da diagonal secundária (data.frame): 34
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
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 <- 1:100
vetor_pares <- vetor_1_100[vetor_1_100 %% 2 == 0]
print(vetor_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
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(v) {
maior <- v[1]
for(i in 2:length(v)) {
if(v[i] > maior) {
maior <- v[i]
}
}
return(maior)
}
# Testando a função
vetor_teste <- c(10, 5, 8, 2, 20, 15)
resultado_maior <- maior_elemento(vetor_teste)
cat("O maior elemento é:", resultado_maior)
## O maior elemento é: 20