Você está na página 1de 31

LABORATÓRIO DE INICIAÇÃO À PROGRAMAÇÃO

Prof. Vinicius De Filippo


UNIDADE I – Introdução ao R
Introdução ao R
 R é um linguagem (ambiente) de programação para
computação estatística e gráfica
 Baseada na linguagem S (S-Plus)

 O ambiente R é flexível
 Pode ser estendido através de pacotes
 Open Source e gratuito

 Homepage do projeto: http://cran.r-project.org/

2 2/36
Introdução ao R
 O R pode rodar tanto em console quanto em uma IDE

 IDE (Integrated Development Environment) ou Ambiente


de Desenvolvimento Integrado: ferramenta utilizada no
desenvolvimento de aplicações, que combina diferentes
funcionalidades em uma única interface gráfica do usuário

 IDE recomendada:
 Rstudio (https://www.rstudio.com/products/rstudio/download/)
 Disponível para Windows, Linux e Ubuntu

3 3/36
Uso inicial do R – O R como calculadora
 A forma de uso mais básica do R é usá-lo como calculadora

 Os operadores matemáticos básicos são:


 + (soma), - (subtração), * (multiplicação), / (divisão) e ^(exponenciação)

 Digite as seguintes operações na linha de comandos do R:


2 + 2
2 * 2
2 / 2
2 - 2
2 ^ 2

4/36
Atribuição de variáveis
 O R permite o uso dos operadores "=", "<-" e "->" como
sinais de atribuição
 No entanto, a comunidade mundial aderiu ao padrão "<-" ex:
a = 2 + 2
texto = “Olá Mundo”
a <- 2 + 2
2 + 2 -> a

 Para ver o conteúdo de uma variável


a
[1] 4
print(a)
[1] 4
texto
[1] “Olá Mundo”

Obs.Como convenção, utiliza-se o padrão chamado "camel case", que especifica que a separação
de palavras se dá pelo uso de uma letra maiúscula na palavra seguinte (ex: "valorTotal")

5 5/36
Observações importantes
 Comandos são separados por “;” ou por novas linhas
b = 2 + 2; print(b)
[1] 4
 Para ajuda
help(<nome do comando>)
?<nome do comando>
 Se não sabe o nome corretamente
help.search("<parte do comando>")
apropos("parte do nome do comando")

6 6/36
Tipos básicos de dados
Numérico
a = 2 + 2
Caractere
c = “Olá mundo"
Lógico
d = (7 > 3)

 Obs.: para se determinar o tipo de uma variável, pode-se usar as funções


mode(), typeof() ou class()

7 7/36
Tipos de Dados – NUMERIC
 Quando um número é associado a uma variável, sem definir o específico
tipo de dado, o R assume como sendo numeric. Ex:
a <- 155.27

 Funções básicas:
# Isso não é um número, é um texto
texto <- "35"

# Agora sim! Podemos converter o texto para número


numero <- as.numeric(texto)

# Podemos testar se é um número


is.numeric(numero)

8/36
Tipos de Dados – INTEGER
 Para definir valores como inteiros basta adicionar a letra L ao final do
número
 Consome a mesma quantidade memória do tipo numeric, entretanto, se
um objeto trabalha somente valores inteiros, defini-lo como integer irá
otimizar seu processamento. Ex:
a <- 155L

 Funções básicas:
# Isso não é um número, é um texto
texto <- "155.27"

# Podemos converter o texto para um número inteiro


numero <- as.integer(texto)

# Podemos testar se é um número


is.integer(numero)

9/36
Tipos de Dados – CHARACTER (string)
 Qualquer conteúdo alfanumérico escrito entre aspas simples ou duplas é
tratado como character (string). Ex:
# Define uma frase com aspas duplas
textoAspasDuplas <- "Olá mundo!"

# Exibe conteúdo
textoAspasDuplas

# Define uma frase com aspas simples


textoAspasSimples <- 'Olá Brasil!'

# Exibe conteúdo
textoAspasSimples

# Define uma frase com informando aspas dentro da frase


textoAspasSimplesDentro <- "McDonald's"

# Exibe conteúdo
textoAspasSimplesDentro

10/36
Tipos de Dados – CHARACTER (string)
 Algumas funções úteis para strings:
# Mensagem em texto (string)
mensagem <- "Laboratório de Introdução à Programação"

# Divide a frase em letras


letras <- strsplit(x = mensagem, split = "")
letras

# Junta as palavras separando por ", "


frase <- paste("Primeiro", "segundo", "terceiro.", sep = ", ")
frase

# quantidade de caracteres
totalChars = nchar(frase)
totalChars

11/36
Tipos de Dados – CHARACTER (string)
 Algumas funções úteis para strings:
# Converte para maiusculo
maiusculo <- toupper(frase)
maiusculo

# Converte para minusculo


minusculo <- tolower(frase)
minusculo

# Retorna se um termo está presente na string


grepl(pattern = "Introdução", mensagem)

# Substitui a palavra "Laboratório" por "Aula"


novaMensagem <- sub(pattern = "Laboratório", replacement = "Aula", mensagem)
novaMensagem

12/36
Tipos de Dados – LOGICO (BOOLEANO)
 Valores boleanos ou lógicos são objetos utilizados em testes condicionais
 O valor FALSO é armazenado como 0L e TRUE como 1L
 Para definir verdadeiro basta associar TRUE ou T e para definir como
falso utilize FALSE ou F. Ex:

# exemplo de uso T ou TRUE # Testa se é um objeto logico


a <- TRUE is.logical(a)
a
b <- T
b

# exemplo de uso F ou FALSE # Testa se objeto e logico


c <- FALSE is.logical("Texto")
c
d <- F
d

13/36
Funções do R
 O R tem diversas funções que podemos usar para fazer
os cálculos desejados

 sqrt(9) # raiz quadrada de 9


 prod(2,2) # mesmo que 2x2
 log(3) # log natural de 3
 log(3,10) # log de 3 na base 10
 log10(3) # o mesmo que acima! log 3 na base 10
 abs(3-9) # abs = modulo, |3-9|
 factorial(4) # 4 fatorial (4!)

14/36
Funções do R

15/36
Exercícios
1. Utilizando variáveis, imprima a média aritmética entre os
números 5, 8,12.

2. Crie uma variável contendo um número inteiro que imprima


o seu valor, o seu antecessor e o seu sucessor.

3. Crie duas variáveis numéricas e imprima as quatro


operações básicas (soma, subtração, multiplicação e divisão)

4. Calcule o número de ouro no R. Dica: o número de ouro é


1+ 5
dado pela expressão:
2

16/36
Exercícios
5. Calcule a conversão entre graus centígrados e Fahrenheit.
Para isso, armazene o valor em graus celsius em uma variável
e calcule com base na fórmula a seguir. Após calcular o
programa deve imprimir o resultado da conversão.

9 × 𝐶 + 160
𝐹=
5
Em que:
F = Graus em Fahrenheit
C = Graus Celsius
 Obs. Use a função paste() para apresentar as mensagens contendo o
texto e os resultados

17/36
Exercícios
6. Calcule quantidade de litros de combustível consumidos em uma viagem,
sabendo-se que o carro faz 12 km por litro de combustível. O programa deverá
armazenar em variáveis o tempo decorrido na viagem e a velocidade média e
aplicar as fórmulas:

𝐷 =𝑇×𝑉
𝐷
𝐿=
12
Em que:
D = Distância percorrida em horas
T = Tempo decorrido
V = Velocidade média
L = Litros de combustível consumidos

Ao final, o programa deverá apresentar todos os valores

18/36
Exercícios
7. A partir da base e a altura de um retângulo, calcule e
apresente o perímetro e a área deste retângulo.

8. Calcule o reajuste do salário de um funcionário. Para isso, o


nome do funcionário deve ser armazenado em uma variável.
À partir dos valores armazenados do salário atual do
funcionário e do percentual de reajuste, apresentar ao final o
nome do funcionário, e todos os demais valores.

9. Faça um programa que converta um mesmo valor


armazenado em uma variável para Euro, Dólar, Libra Esterlina
e Iene Japonês para Reais

19/36
Principais Operadores Aritméticos e Lógicos

Operador Descrição Operador Descrição


+ Adição == Igualdade
- Subtração > Maior
* Multiplicação < Menor

/ Divisão >= Maior ou igual

: Operador de sequência <= Menor ou igual

^ Exponencial & Conjunção (AND)

%% Módulo (obtém o resto da | Disjunção (OR)


divisão) ! Negação (NOT)

20/36
Operadores Lógicos e Tabela Verdade

Operador Lógico Representação em R Exemplo


E (conjunção) & x > 1 & x < 19
OU (disjunção) | (barra vertical) x == 1 | x == 2
NÃO (negação) ! (ponto de exclamação) ! FALSE

Tabela E ( & ) Tabela OU ( | ) Tabela NÃO ( ! )


V eV =V V ou V = V Não V = F
VeF=F V ou F = V Não F = V
F eV = F F ou V = V
FeF=F F ou F = F

21/36
Objetos do R
 Os tipos de objetos básicos do R são:
 vetores: uma sequência de valores numéricos ou de
caracteres
 matrizes: coleção de vetores em linhas e colunas, todos os
vetores dever ser do mesmo tipo (numérico ou de caracteres)
 dataframe: o mesmo que uma matriz, mas aceita vetores de
tipos diferentes (numérico e caracteres)
 listas: conjunto de vetores, dataframes ou de matrizes
 funções: as funções criadas para fazer diversos cálculos
também são objetos do R

22/36
Vetores
 Entrando com dados com "c"oncatenate
valores = c(6, 7, 4, 3, 2, 0, 0, 6)
valores
[1] 6 7 4 3 2 0 0 6

23 23/36
Vetores
 Selecionando valores de vetores
valores[1] # O índice da primeira posição do vetor é 1
[1] 6
valores[4]
[1] 3
valores[3:5]
[1] 3 2 0
valores[-3] # Seleciona todos os valores, menos o terceiro
[1] 6 7 3 2 0 0 6

 Todos os dados são armazenados no R como vetores


a = 4
a[1]
[1] 4

24 24/36
Exercícios:
Explique cada um dos commandos a seguir:
a) vetor <- c(1,2,3,4,5,6,7,8,9)
b) vetor = (1:9)
c) vetor = (9:1)
d) seq(1, 9, by = 2)
e) seq(1, 9, by = pi)
f) seq(1, 9, by = 0.5)
g) rep(1, 10)
h) rep(vetor, 5)
i) rep(vetor, each = 5)

25 25/36
Operações básicas com vetores
 Somatório sum(<variável>)
 Produtório prod(<variável>)
 Tamanho do vetor length(<variável>)
 Ordenação sort(<variável>)
 Valor absoluto abs(<variável>)
 Raiz quadrada sqrt(<variável>)
 Valor mínimo min(<variável>)
 Valor máximo max(<variável>)

26 26/36
Operações estatísticas
 Média aritmética
mean(<nome do vetor>)
 Mediana
median(<nome do vetor>)
 Variância
var(<nome do vetor>, na.rm = FALSE)
 Desvio padrão
sd(<nome do vetor>, na.rm = FALSE)
 se na = TRUE, os missing values serão removidos

27 27/36
Missing values
 Algumas operações podem retornar resultados
"inexistentes", chamados “missing values”
 Inf: infinito positivo
 -Inf: infinito negativo
 NA: "Not Available“
 Existem funções para testar se algum desses valores foi
retornado, onde x pode ser um vetor:
is.finite(x)
is.infinite(x)
is.na(x)
 O retorno dessas funções é um Booleano, definido em R como
TRUE ou FALSE

28 28/36
Exemplo Vetores
Considere os seguintes dados levantados pelo setor de segurança do trabalho para
verificar os possíveis riscos na saúde de seus funcionários:
Nome José Paulo Pedro Lucas Arthur Gustavo
Peso (kg) 60 72 57 90 95 72
Altura (m) 1.75 1.80 1.65 1.90 1.74 1.91

Tendo como base os dados acima, responda o seguinte:


a) Qual a média do peso dos funcionários
b) Qual a média da altura dos funcionários
c) Quais os funcionários estão com peso acima de 70kg
d) Qual o funcionário mais baixo
e) Qual o funcionário mais alto
f) Quantos funcionários estão com peso entre 70 e 80kg
g) Calcule o IMC de todos os funcionários
h) Quais funcionários estão com IMC acima de 25
29/36
Exemplo Vetores - Solução
# armazenando os valores da tabela em vetores
nomes <- c('José','Paulo','Pedro','Lucas','Arthur','Gustavo')
pesos <- c(60, 72, 57, 90, 95, 72)
alturas <- c(1.75, 1.80, 1.65, 1.90, 1.74, 1.91)

# a) Qual a média do peso dos funcionários


mediaPeso <- mean(pesos)
mediaPeso

# b) Qual a média da altura dos funcionários


mediaAltura <- mean(alturas)
mediaAltura

# c) Quais os funcionários estão com peso acima de 70kg


nomes[pesos > 70]

30/36
Exemplo Vetores - Solução
# d) Qual o funcionário mais baixo
menorAltura = min(alturas)
nomes[alturas == menorAltura]

# e) Qual o funcionário mais alto


maiorAltura = max(alturas)
nomes[alturas == maiorAltura]

# f) Quantos funcionários estão com peso entre 70 e 80kg


faixaPeso <- nomes[pesos > 70 & pesos < 80]
faixaPeso
length(faixaPeso)

# g) Calcule o IMC de todos os funcionários


imc <- pesos / alturas^2
imc

# h) Quais funcionários estão com IMC acima de 25


nomes[imc > 25]

31/36

Você também pode gostar