Capítulo 3 Fundamentos básicos da programação
3.1 Variáveis
Utilizamos a variável para armazenar um valor qualquer em um local da memória RAM do computador. Deste modo, é possível reutilizar esse valor, usando o nome da sua variável.
3.1.1 Declaração e atribuição de variáveis
Em R declaramos uma variável atribuindo a ela um valor em três formas diferente: símbolo de atribuição <-, símbolo de atribuição = e função assign().
nome.var <- valor # atribuicao: menor e traco
nome.var = valor # atribuicao: igual
assign("nome_var",valor) # funcao: assign3.1.2 Dicas para nomear variáveis
As variáveis podem ser nomeadas com o uso letras, números, ponto (.) e underline (_), no entanto é necessário se atentar para algumas dicas de como nomear as variáveis:
O nome da variável deve sempre começar com uma letra ou um ponto, ou seja, não pode iniciar com números ou símbolos. Se iniciar com ponto o próximo caracter não pode ser um número.
O nome da variável que contêm mais de uma palavra é recomendado o uso do underline (_) para separa-la.
O nome da variável não pode ser palavras reservadas da linguagem como TRUE, if, while, entre outras.
O nome da variável não pode conter espaços.
O nome da variável deve ser condizente com o seu valor.
3.1.3 Tipos de dados das variáveis
Em R o tipo de dado da variável é obtido a partir do valor atribuído à ela. Isto faz da linguagem R: Linguagem dinamicamente tipada. Pois, o tipo de dado de uma variável pode ser alterado dinamicamente enquanto o programa/script é executado.
As variáveis em R podem ser do tipo: inteiro (interger), ponto flutuante (double), complexo (complex), caracteres (character/string) e lógico (logical).
var_int <- 2L # var integer
var_db1 <- 1.5 # var double
var_db2 <- 2 # var double
var_comp <- 2 + 3i # var complex
var_str <- "a_01" # var string/character
var_log <- TRUE # var logicalPodemos verificar o tipo das variáveis criadas no chunk anterior através da função typeof().
typeof(var_int)## [1] "integer"
typeof(var_db1)## [1] "double"
typeof(var_db2)## [1] "double"
typeof(var_comp)## [1] "complex"
typeof(var_str)## [1] "character"
typeof(var_log)## [1] "logical"
Para verificar quais variáveis o R está usando workspace usando a função ls().
ls()## [1] "var_comp" "var_db1" "var_db2" "var_int" "var_log" "var_str"
Para excluir variáveis, ou seja, desalocar determinada variável da memória RAM, basta usar a função rm().
rm(var_str) # desaloca a variavel var_str
rm(list = ls()) # desaloca todas as variaveis3.2 Operações em R
Podemos executar operações matemáticas, lógicas e comparações em R. Para isso o R faz uso de operadores. Os operadores são divididos em: aritmético, relacional e lógico.
Os operadores aritméticos como o nome já diz são usados em operações aritméticas e são eles:
- Adição: +
- Subtração: -
- Multiplicação: *
- Divisão: /
- Resto de divisão: %%
- Divisão inteira: %/%
- Potenciação: ^
2+2 # soma
5-2 # subtracao
2*5 # multiplicacao
5/2 # divisao
5%%2 # resto de divisao
5%/%2 # divisao inteira
2^5 # potenciacaoJá os operadores relacionais, tratam da relação de um valor com o outro e são eles:
- Menor: <
- Maior: >
- Menor ou igual: <=
- Maior ou igual: >=
- Igual: ==
- Diferente: !=
2<5 # menor
2>5 # maior
2<=2 # menor ou igual
2>=5 # maior ou igual
5==5 # igual
2!=2 # diferentePor fim, os operadores lógicos são:
- logical NOT: !
- logical AND: &
- logical OR: |
!TRUE # NOT = qual e o contrario de TRUE?
TRUE | FALSE # OR = um dos dois ou os dois é ou são verdadeiros?
TRUE & FALSE # AND = os dois são verdadeiros?3.3 Condições e loops
Existem dois passos que são trilhados por toda linguagem de programação, e alguns progrmadores dizem que se uma linguagem de programação não permite a execução destes dois passos, ela não é bem considerada uma linguagem de programação. Um exemplo é a linguagem HTML, essa linguagem é dita como linguagem de marcação sua finalidade é trabalhar com estruturação de textos. Não iremos utilizá-la para cálculos ou procedimentos que demandam de uma rotina computacional com base em cálculos e nos dois passos. Mas quais são estes dois passos? R: condições e loops.
3.3.1 Condições
Se alguma coisa for verdadeira (TRUE) o R vai agir de uma maneira, caso seja mentira (FALSE) ele vai agir de outra maneira. Você pode estabelecer algumas condições para que seja feita uma função.
3.3.1.1 Condição: if if()
Determinado código será executado somente se a condição for verdadeira, abaixo é apresentado a estrura do if.
# -- estrutura
# if(condicao){
# comandos a serem executados
# }Vamos agora fazer uma aplicação: se o número dois for maior que o número um, então imprima na tela a frase: dois é maior que um. Caso contrário não faça nada.
# -- aplicacao
## -- verdadeiro
if(2>1){
print("dois é maior que um")
}## [1] "dois é maior que um"
No exemplo abaixo a condição é falsa, logo o comando dentro de if não é executado.
## -- falso
if(2<1){
print("dois é menor que um")
}3.3.1.2 Condição: if else if() else()
Podemos querer que um comando seja executado se condição for verdadeira e outro comando seja executado se a condição for falsa. Faremos da seguinte forma:
if(TRUE){
print("comando dentro do if")
}else{
print("comando dentro do else")
}## [1] "comando dentro do if"
Por ser verdadeira a condição dentro do if, foi executado o primeiro comando.
if(FALSE){
print("comando dentro do if")
}else{
print("comando dentro do else")
}## [1] "comando dentro do else"
A condição dentro do if é falsa então foi executado o comando dentro do else
Outra forma de aplicar a condição if else é usando a função ifelse().
ifelse(2 > 1, 2*1, 1/2) # condicao verdadeira## [1] 2
ifelse(2 < 1, 2*1, 1/2) # condicao falsa## [1] 0.5
3.3.2 Loops
É muito trabalhoso reescrever código a fim de obeter repetições, sem mencionar o tempo gasto nesta reescrita. Sendo assi, o R possui algumas funções de repetições são elas: for(), while() e repeat().
A função for() repete o código para o comprimento da sequência indicada à ela.
for(variavel in sequencia){
comandos a serem repetidos
}No exemplo abaixo a variável i vai assumir um valor da sequência numérica 1, 2, 3, 4 e 5, e então executar a função print() em i para cada valor da sequência adotada por i.
# : cria uma sequencia Ex.: sequencia do 1 ao 5 = 1:5
for(i in 1:5){
print(i)
}## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
Outro exemplo do uso do for: Vamos printar na tela as cindo primeiras letras do alfabeto.
for(letra in letters[1:5]){
print(letra)
}## [1] "a"
## [1] "b"
## [1] "c"
## [1] "d"
## [1] "e"
Já a função while() executa os comandos enquanto a condição informada a ela for verdadeira.
while(condição){
comandos a serem repetidos
}Por exempĺo: vamos construir um temporizador que determina um espaço de tempo de cinco segundos.
contador <- 1
while(contador <= 5){
print(contador)
contador = contador + 1
}## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
Perceba que não foi exatamente um espaço de tempo de cinco segundos, foi mais rápido. Vamos inserir um comando ao R dizendo a ele para aguardar um segundo após a execução anterior.
contador <- 1
while(contador <= 5){
print(contador)
contador = contador + 1
Sys.sleep(1)
}## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
A função repeat() é usada quando queremos repetir um código sem a avaliação de uma condição. Atenção: vamos precisar utilizazr a função break() para dizer ao programa o momento em que deve parar a execução, ou seja a repetição. Também utilizaremos a função if() para avaliar a condição e então chamar o break.
contador <- 10
repeat{
print(contador)
contador <- contador + 10
if(contador > 100) break()
}## [1] 10
## [1] 20
## [1] 30
## [1] 40
## [1] 50
## [1] 60
## [1] 70
## [1] 80
## [1] 90
## [1] 100
3.4 Lista de exercícios
Declare três variáveis atribuindo valores numéricos e apresente o resultado da multiplicação das suas combinações dois a dois destas três variáveis (cada variável com um número). Ex.: variáveis A, B, e C mostre AxB, AxC e BxC com atribuição dos valores as variáveis.
Converta (no R) a temperatura Fahrenheit 78 °F para Centígrados. Fórmula: C = (F-32) x (5/9).
Calcule (no R):
- o resto da divisão de 7 por 9
- 2 elevado ao cubo
- raiz quadrada de 64
- Elabore um algoritmo que:
- crie um vetor com uma sequência numérica de 5 números
- faça um loop para calcular a soma destes números
- Elabore um algoritmo que:
- crie um vetor com uma sequência numérica de 7 números
- faça um loop para calcular a média destes números
- Elabore um algoritmo que:
- crie um vetor com uma sequência numérica de 12 números
- faça a soma dos números pares