Você está na página 1de 22

Programação Estatística

Material Teórico
Variáveis, Tipos de Dados e Estruturas de Controle

Responsável pelo Conteúdo:


Prof.ª Me. Jessica Barbara da Silva Ribas

Revisão Textual:
Prof.ª Me. Natalia Conti
Variáveis, Tipos de Dados
e Estruturas de Controle

• Variáveis;
• Tipo de Dados;
• Estruturas de Controle.

OBJETIVO DE APRENDIZADO
• Capacitar o aluno a escrever e entender R scripts simples.
Orientações de estudo
Para que o conteúdo desta Disciplina seja bem
aproveitado e haja maior aplicabilidade na sua
formação acadêmica e atuação profissional, siga
algumas recomendações básicas:
Conserve seu
material e local de
estudos sempre
organizados.
Aproveite as
Procure manter indicações
contato com seus de Material
colegas e tutores Complementar.
para trocar ideias!
Determine um Isso amplia a
horário fixo aprendizagem.
para estudar.

Mantenha o foco!
Evite se distrair com
as redes sociais.

Seja original!
Nunca plagie
trabalhos.

Não se esqueça
de se alimentar
Assim: e de se manter
Organize seus estudos de maneira que passem a fazer parte hidratado.
da sua rotina. Por exemplo, você poderá determinar um dia e
horário fixos como seu “momento do estudo”;

Procure se alimentar e se hidratar quando for estudar; lembre-se de que uma


alimentação saudável pode proporcionar melhor aproveitamento do estudo;

No material de cada Unidade, há leituras indicadas e, entre elas, artigos científicos, livros, vídeos
e sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso, você tam-
bém encontrará sugestões de conteúdo extra no item Material Complementar, que ampliarão sua
interpretação e auxiliarão no pleno entendimento dos temas abordados;

Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discus-
são, pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de propiciar o
contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e de
aprendizagem.
UNIDADE Variáveis, Tipos de Dados e Estruturas de Controle

Variáveis
Computacionalmente, uma variável é um espaço alocado na memória RAM com
o objetivo de receber um determinado valor, por padrão ela deve ter um nome (e na
maioria das linhagens de programação ela deve ter um tipo de dados a ser recebido).

Na linguagem R esse conceito de variável é valido, mas as variáveis na realidade


são chamadas de objetos, ou seja, uma estrutura predefinida que vai receber algum
valor, que o R armazenará na memória RAM e poderá ser acessado pelo nome.

A partir desse momento o nome variáveis e objetos serão tratados como sinô-
nimos, porém essa nomenclatura só é válida no R. Pois em outras linguagens de
programação a noção de objetos e variáveis podem ter uma abordagem diferente.

Figura 1 – Exemplo de instanciação de variável


Fonte: Acervo do conteudista

Uma variável no R só passará a existir quando for atribuído um valor a ela, por
meio do comando <-. Na Figura 1, ao escrever valor sem atribuir qualquer dado e
executar, o resultado foi um erro dizendo que o objeto não foi encontrado.

Porém, ao executar o comando valor <- 3 a variável foi criada e passou a apare-
cer na aba “Environment/Global Enviroment/Values”, ou seja, ela foi instanciada
corretamente na memória RAM e agora está dentro da sessão R, conforme mos-
trado na Figura 2.

Os objetos criados podem receber qualquer valor, desde números, textos, equa-
ções matemáticas e fórmulas. Por isso criaremos os objetos “varInt”, “varNumero”

8
e “varTexto” conforme exemplo das figuras 1 e 2. Note que o valor entre aspas “”
ou ‘’ é reconhecido automaticamente como um texto.

Figura 2 – Objetos disponíveis na sessão R


Fonte: Acervo do conteudista

A identificação do tipo do objeto é feita automaticamente pelo R, caso não seja


indicado um tipo, como no exemplo da “varInt <- as.integer(8)”, a função “as.inte-
ger” indica que o valor 8 foi transformado em um tipo inteiro.

Agora vamos criar uma variável cálculo que receberá a soma entre “varInt”,
“varNumero” e valor. Note que o cálculo será realizado normalmente, isso porque
o tipo de dados inteiro é um subtipo numérico, ou seja, todas as variáveis contêm
números e a ação de somar pode ser realizada.

Porém, ao tentar somar cálculo com “varTexto” irá ser apresentada uma mensa-
gem de erro no console, conforme ilustrado na Figura 3. Isso é a garantia de que os
dados de tipos incompatíveis não serão associados ou trabalhados de qualquer jeito.

Figura 3 – Exemplo de cálculo entre variável numérica e variável texto


Fonte: Acervo do conteudista

Tipo de Dados
O R é uma linguagem de programação de tipagem fraca e dinâmica. Uma lin-
guagem de programação de tipagem fraca faz a conversão de tipos implicitamente,
por exemplo, na variável “cálculo” nós somamos variáveis numéricas e inteiras sem
precisar convertê-las.

9
9
UNIDADE Variáveis, Tipos de Dados e Estruturas de Controle

Já a tipagem dinâmica deve-se ao fato de que o objeto pode receber tipos de


dados diferentes durante a execução do script, então cuidado com a utilização de
nomes parecidos, pois você pode se confundir e sem querer atribuir um valor inde-
vido à variável e perder todo um trabalho.
Saber sobre como a linguagem de programação trabalha os tipos de dados fa-
cilita nas estratégias a serem adotadas como boas práticas. Também tem o fato de
que se algo não funcionou como esperávamos podemos checar se o tipo de dado
atribuído automaticamente pelo sistema é o tipo de dado que desejamos que seja.
Explor

Tipagens de Linguagens de Programação: https://bit.ly/2GO0AwS

Primeiro de tudo no R existem os tipos básicos de objetos:


• “chacter”, as variáveis que recebem texto;
• “logical” é o tipo booleano (verdadeiro ou falso);
• Os tipos de dados numéricos são “numeric”, “integer”, “double” e “complex”.
Para saber o tipo de um objeto, usa-se a função “class(Nome do objeto)”, con-
forme exemplificado na Figura 4, sempre que a função “class()” for executada, será
informado o tipo de dados que o objeto está recebendo no momento.
Outro detalhe importante é que R é Case Sensitive, ou seja, ele diferencia as letras
maiúsculas e minúsculas, por isso aparece o erro ao executar o “class(varnumero)”,
a variável em questão chama-se “varNumero”.

Figura 4 – Verificação de tipo nos objetos


Fonte: Acervo do conteudista

10
A conversão de tipos ocorre usando as funções: “as.numeric()”, “as.integer()”,
“as.complex()”, “as.double()”, “as.logical()” e “as.character()”. Quando tentamos
converter um tipo numérico decimal em inteiro, o valor após decimal irá desapare-
cer, conforme exemplificado na Figura 5.

Figura 5 – Conversão de tipos nos objetos


Fonte: Acervo do conteudista

Ao tentar converter um texto em número irá ocorrer um erro de conversão de


valores, dizendo que não é numérico, contudo, o objeto será transformado em
“numeric” e receberá o valor “NA” (Not Available – Não disponível) na variável.
Outro fato curioso foi converter a variável “convvalor” no tipo lógico, ela assumiu
o valor “TRUE”. Todos os resultados das conversões de tipo realizados são mos-
trados na Figura 6.

Todos os exemplos de conversão de tipos anteriores foram feitos para mostrar


quanto o tipo de tipagem de dados da linguagem de programação afeta na forma
como escrevermos e organizamos o programa.

Uma tipagem dinâmica irá permitir que o objeto receba tipos diferentes de dados
enquanto ele existir. Podemos ver isso ao mudar o “convvalor” de número para
lógico, ao tentar converter o valor do objeto “varTexto” para número, e por não ser
possível devido à integridade da linguagem, a variável passou a ser numérica mais
o valor de NA.

11
11
UNIDADE Variáveis, Tipos de Dados e Estruturas de Controle

Figura 6 – Valores das variáveis de ambiente após a conversão de tipos


Fonte: Acervo do conteudista

Estruturas de Controle
Comumente, existem certas circunstâncias ou condições para que determinadas
partes de programa devam ou não serem executas. Para tanto, utilizam-se estrutu-
ras de controle de fluxo. O R disponibiliza as estruturas de controle de fluxo comuns
como: if, If else, for, while.
Primeira coisa que devemos ter em mente é que para utilizar um controle de
fluxo vamos precisar comparar valores, a fim de saber se a condição necessária foi
ou não atingida. Para tanto, utilizaremos os operadores de comparação e lógicos.
Operadores de comparação:
• Igualdade ==
• Não igual ou diferente !=
• Menor que <
• Maior que >
• Menor ou igual <=
• Maior ou igual >=
Operadores Lógicos:
• E &&
• OU ||
Os operadores lógicos são utilizados para concatenar mais de condição dentro
da mesma estrutura de controle, por exemplo: se meu saldo está maior que 10 e
não realizei uma refeição, então compre a comida.
Por padrão, para a execução de bloco de código, que utiliza o operador logico E,
todas as condições precisam ser verdadeiras, para que a sentença seja considerada
verdade. Já no operador OU, desde que umas das condições sejam satisfeitas a
sentença será considerada verdadeira.

12
Explor
Tabela Verdade: https://bit.ly/2ZzlDuv

If
Em uma estrutura if simples, o conjunto de códigos ou bloco de comandos
somente irá executar quando a condição for verdadeira. Caso a condição seja
falsa, todos os comandos dentro do If serão ignorados e a execução do script
seguirá normalmente.

A sintaxe do comando é if (condição) {comandos a ser executado}. Na figura


7 verificamos se o objeto “varTexto” é do tipo caractere, se sim será exibido no
console a frase “varTexto” que ainda é do tipo Caractere. Logo, o resultado da con-
dição foi falso não realizando nenhuma ação e como prova executou-se a função
“class(varTexto)” e confirmou que ela é do tipo numérica.

Figura 7 – Exemplo comando If


Fonte: Acervo do conteudista

As chaves { } são os delimitadores do bloco de comandos, ou sejam indicam o iní-


cio e o fim das linhas de instruções que pertencem a uma estrutura de controle. Note
que o comando que pertence ao if está recuado, isso porque as boas práticas de
programação indicam a organização do código para facilitar as futuras atualizações.

If Else
A estrutura if else é utilizada quando temos duas opções de bloco de comandos
para uma condição, porém uma será executada quando a condição for verdadeira
e a outra será executada quando a condição for falsa.

A sintaxe é if (condição) {comandos} else {comandos}. Por padrão a condição else


não possui outra verificação, ela sempre irá ocorrer quando a condição for FALSA.

13
13
UNIDADE Variáveis, Tipos de Dados e Estruturas de Controle

Figura 8 – Exemplo dos comandos if else


Fonte: Acervo do conteudista

A figura 8 ilustra a sintaxe do comando if else no R e o resultado da execução no


console. Por padrão, o else deve vir logo depois da chave do if, caso queira colocar
o else na linha de baixo o Rstudio ficará indicando um erro de sintaxe e se você
executar assim mesmo aparecerá um erro no console.
O resultado da verificação do objeto “varTexto” indica a execução do bloco de
comandos do else, logo a “varTexto” não é caractere, é numérica. Note que uti-
lizou-se o comando print() para mostrar mensagens para o usuário no console.
De agora em diante, sempre que houver algo a ser mostrado no console como sa-
ída de texto, iremos utilizar a função print().
Dentro dos blocos else ou if é possível encadear (colocar) vários comandos if
juntamente com else. No exemplo da Figura 9, dentro do comando else temos um
conjunto If/else que verifica se “varTexto” é do tipo lógica, se não simplesmente
mostra o tipo da “varTexto”. Contudo, vale lembrar que poderíamos ter colocado
os comandos if else no outro bloco também.

Figura 9 – Exemplo de If Else encadeado


Fonte: Acervo do conteudista

14
Veja outros exemplos de If, If Else em R. Programação no R: if(), if() else e ifelse():
Explor

Disponível em: https://bit.ly/2GLOdl4

Switch
A função Switch permite a escolha de um item em uma lista de opções. Essa
escolha seguirá uma expressão ou regra passada à função, juntamente com a lista.

A sintaxe do comando é: switch (expression, list).

Figura 10 – Exemplo função switch()


Fonte: Acervo do conteudista

Todos os exemplos de comando utilizados na Figura 9 indicam a busca de um


determinado índice na lista de cores passada como parâmetro. Quando o resultado
é encontrado é exibido o conteúdo do texto, mas quando não foi encontrado a fun-
ção retorna NULL, ou seja, nulo.

Laços de repetição
Os laços de repetição ou estrutura de looping são estruturas que permitem a
repetição de determinado conjunto de código, desde ou até que uma condição seja
satisfeita. Por exemplo, quando houver roupa suja lave-a ou envie currículos até
encontrar um emprego.
Explor

Lógica de Programação - estruturas de repetição: https://bit.ly/2yANTRR

Apesar do R ser uma linguagem de programação funcional, algumas vezes vai se


fazer necessário a utilização das estruturas de looping, por isso são disponibilizadas
as opções For, While e Repeat.

15
15
UNIDADE Variáveis, Tipos de Dados e Estruturas de Controle

For
A Figura 10 mostra dois exemplos do laço de
repetição for, este foi utilizado como um conta-
dor de zero a 5 e 1 a 5, mostrando no console
os valores de i. Nesse caso, o comando for não
está utilizando as chaves para delimitar o início
e o fim do bloco de comandos, pois possui uma
única linha.

O comando for necessita de uma variável de


controle interno, ou seja, ela irá existir somente
dentro da estrutura de comando for durante sua
execução. Com ela será possível realizar a tarefa
desejada. Abaixo segue a sintaxe do comando:

for (variável de controle in intervalo a ser Figura 11 – Exemplo de índice


considerado a repetição){ iniciado em zero e em 1
Fonte: Acervo do conteudista
comandos a serem executados}

No exemplo da Figura 11, a variável de controle foi nomeada de i e o intervalo


foi de (0:5) e (1:5). O comando in é uma palavra reservada e indica que i deve tra-
balhar dentro do intervalo.

A Figura 12 mostra outro exemplo de imple-


mentação do for, agora a variável de controle cha-
ma letras e ela deve percorrer um vetor chama-
do “letters” na posição de 1 a 10 e mostrar na
tela as letras. Note que dessa vez foi utilizado as
chaves para indicar o início e o fim do bloco de
comando.

Na área de computação por padrão estamos


acostumados com os índices começarem em zero,
mas no R isso é um pouco diferente, normalmen-
te os índices estruturas de dados começam a par-
tir do 1. Por isso, a Linguagem R pode parecer Figura 12 – Exemplo
um pouco estranha para quem já sabe programar da sintaxe comando for
em outras linguagens de programação. Fonte: Acervo do conteudista

While
O Comando While requer que a variável de controle seja iniciada fora do laço,
pois o comando faz a verificação antes de executar o bloco de comandos. Caso a
variável de controle não satisfaça a condição, todo o conjunto de comando dentro
do While não será executado. Conforme mostra a Figura 13 no Lado B.

16
A sintaxe básica do comando While é:

Variável de controle
While (Condição) {linhas de código
Modificar variável de controle}

Figura 13 – Exemplos comando While Lado A – a execução corre normalmente


no lado B a não ocorre nenhuma execução do bloco de comando
Fonte: Acervo do conteudista

No Lado A o bloco de comandos foi executado com sucesso até que a condição
a menor ou igual a 5 foi alcançada, contudo no Lado B a variável a recebe 0 valor
de 10, não satisfazendo a condição, o conjunto de código foi ignorado.

Note que foi necessário incluir uma linha onde incrementa o valor da variável a
uma vez a cada looping. Comparar o While com o For nessa linha não foi neces-
sário, pois por regra o for já irá incrementar a variável de controle. Contudo, no
While essa linha se faz necessária para que o critério de parada seja alcançado.

Repeat
O Comando repeat irá repetir o bloco de comandos, porém ele não possui ne-
nhum critério de parada, assim faz-se necessário a utilização do comando if para
verificar a condição e o comando break() para parar o looping.

A sintaxe ideal seria:

Variável de controle
Repeat{
Comandos
If( condição){ break()}
}

17
17
UNIDADE Variáveis, Tipos de Dados e Estruturas de Controle

Figura 14 – Exemplo da implantação do Repeat


Fonte: Acervo do conteudista

A Figura 14 mostra o código e o resultado de execução do comando Repeat,


esse laço de repetição é um pouco perigoso, pois é necessário colocar o critério de
parada manualmente.

Contudo, diferente do While, mesmo que a variável de controle não esteja de


acordo com a condição, o bloco de comandos será executado pelo menos uma vez.

Uma diferença entre o For, While e Repeat é: enquanto o For tem sua variável
de controle dentro do laço de repetição, o While e o Repeat possuem variáveis
globais para seu controle, ou seja ao término da execução do programa, os objetos
do While e Repeat ficam na sessão R, mas a variável de controle do For não fica
disponível na sessão R.

18
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:

Vídeos
Aula 06 – Objetos, atributos e tipos de dados no R
CODIGOFLUENTE, Código Fluente. Aula 06 – Objetos, atributos e tipos de dados no R.
https://bit.ly/2MGRMg8

Leitura
Loops no R: usando o for()
ANALISEREAL, Analise Real. Loops no R: usando o for().
https://bit.ly/2KimieM
Condições no R
FILGUEIRA, Leonardo. Condições no R.
https://bit.ly/2GNB1w1
Loops no R
FILGUEIRA, Leonardo. Loops no R.
https://bit.ly/2MEmvur

19
19
UNIDADE Variáveis, Tipos de Dados e Estruturas de Controle

Referências
DA SILVA, L. A.; PERES, S. M.; BOSCARIOLI, C. Introdução à mineração de
dados: com aplicações em R. Elsevier Brasil, 2017.

OLIVEIRA, P. F. de; GUERRA, S.; MCDONNEL, R. Ciência de Dados com R –


Introdução. Brasília: Editora IBPAD, 2018. Disponível em: <https://www.ibpad.
com.br/o-que-fazemos/publicacoes/introducao-ciencia-de-dados-com-r/>.

Sites visitados
CRAN, The Comprehensive R Archive Network. <https://cran.r-project.org>.
Acessado em: 05/2019.

GOOGLER, Google’s R Style Guide. <https://google.github.io/styleguide/Rguide.


xml#todo>. Acessado em: 05/2019

RSTUDIO. R Studio, <https://www.rstudio.com>. Acessado em: 05/2019.

The R Project. What is R?. <https://www.r-project.org/about.html>. Acessado


em: 05/2019

WICKHAM, H. R for Data Science. O’Reilly, 2017. Disponível em <https://r4ds.


had.co.nz>.

WICKHAM, H. Advanced R Syle Guide. <http://adv-r.had.co.nz/Style.html>.


Acessado em: 05/2019

20

Você também pode gostar