0% acharam este documento útil (0 voto)
8 visualizações45 páginas

Agente e Escrivão Da Polícia Federal - 2020: Prof. Hamilton Rodrigues

O documento aborda a linguagem de programação R, destacando sua importância para análise de dados e estatísticas, especialmente em contextos de concursos públicos. Ele explora conceitos fundamentais, como tipos de dados, operações básicas, e estruturas de repetição, além de apresentar a IDE RStudio e suas funcionalidades. O material é voltado para concurseiros que desejam se familiarizar com R e suas aplicações práticas.

Enviado por

Rafael Almeida
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
8 visualizações45 páginas

Agente e Escrivão Da Polícia Federal - 2020: Prof. Hamilton Rodrigues

O documento aborda a linguagem de programação R, destacando sua importância para análise de dados e estatísticas, especialmente em contextos de concursos públicos. Ele explora conceitos fundamentais, como tipos de dados, operações básicas, e estruturas de repetição, além de apresentar a IDE RStudio e suas funcionalidades. O material é voltado para concurseiros que desejam se familiarizar com R e suas aplicações práticas.

Enviado por

Rafael Almeida
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Prof.

Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Agente e Escrivão da Polícia Federal - 2020

Prof. Hamilton Rodrigues


1 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Sumário
SUMÁRIO 2

LINGUAGEM R 3

INTRODUÇÃO 3
SCRIPTS EM R 7
TIPOS DE DADOS 10
Primitivos 10
Vetores 11
Listas 16
Matrizes 17
Data frames 19
OPERAÇÕES BÁSICAS 21
Atribuição 21
Concatenação 23
Aritméticas 23
Booleanas 26
Funções matemáticas 27
Funções estatísticas 29
Matriciais 30
ESTRUTURAS DE REPETIÇÃO 31
for 31
If-else 32
while 33
repeat-break 35

QUESTÕES COMENTADAS PELO PROFESSOR 36

LISTA DE QUESTÕES COMENTADAS 39

GABARITO 41

RESUMO DIRECIONADO 42

2 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Linguagem R
Introdução
Prezados concurseiros, vamos dar prosseguimento ao nosso curso. Desta vez, vamos estudar a linguagem
de programação R. Talvez você pouco ou nunca tenha ouvido falar de R, mas trata-se de uma linguagem bastante
importante. Além disso, é uma das que mais cresce no mundo nos últimos tempos.

O R é uma linguagem de programação com foco na análise de dados e na estatística, mais conhecido pelos
nomes em inglês data science, data analysis, data analytics, statistics.

Talvez você concurseiro esteja se perguntando por que “diacho” essa linguagem está sendo cobrada em
concursos públicos. É uma tendência mundial, tanto de órgãos públicos quanto de empresas privadas. Cada vez
mais procura-se tomar decisões em cima de dados e não mais na intuição.

Imagine que um agente público deseja saber se, colocando mais radares de velocidade nas estradas vai
reduzir o número de acidentes, ou se colocar mais policiais nas ruas irá diminuir o número de crimes, ou se investir
em saúde preventiva vai diminuir os gastos com emergências, ... E por aí vai. Todo mundo tem uma resposta
intuitiva para essas perguntas na cabeça.

O R permite ir além da intuição. Ele tem a capacidade de analisar dados, aplicar modelagem estatística e dar
respostas quantitativas a essas perguntas. Para saber se as ações são verdadeiramente efetivas e se valem o
investimento realizado nelas. É por isso que R e outras tecnologias similares têm crescido tanto.

A linguagem R foi criada no Nova Zelândia pelos pesquisadores estatísticos Ross Ihaka e Robert Gentleman.
Foi baseada, inspirada na linguagem S, que não vem ao caso estudar aqui. Iremos focar somente no R, que é o que
cai.

O R é um software livre (licença GNU GPL v2), o que significa que qualquer um pode, gratuitamente, baixar,
desenvolver e executar código em R. A linguagem possui também uma IDE (ambiente de desenvolvimento
integrado) chamada RStudio, que também é gratuita e pode ser baixada e utilizada livremente.

3 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

O RStudio tem uma interface bem amigável e, com ele, é possível desenvolver, debugar e executar seu
programa em R de forma bem produtiva, sem ter que recorrer muitas vezes à linha de comando, realizando
operações apenas clicando nos botões da IDE.

Já vimos anteriormente que um programa de computador é um conjunto de instruções que descrevem uma
tarefa a ser realizada por um computador. O computador está lá no nível mais baixo de abstração. Só entende os
bits (0 e 1). O humano está no outro extremo, no nível mais alto de abstração.

Ao passo que o computador só é capaz de trabalhar com coisas concretas, o homem pode trabalhar com
pensamentos abstratos e subjetivos. Para uma pessoa dar instruções para um computador tem que ser usado um
meio termo, algo que ambos entendam, que é a linguagem de programação.

4 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Observem a nossa pirâmide de nível de abstração que o R está no degrau mais alto, ou seja, é uma linguagem
de alto nível. Além disso, R é uma linguagem de script interpretada, voltada à interação dinâmica com dados e
modelos.

O código-fonte R é um arquivo com extensão .r em texto claro normal. Para rodar o programa, é só executar
o script pelo interpretador do R que ele executará linha a linha.

O programa R pode ler dados das mais variadas fontes, como por exemplo planilhas Excel, bases de dados
SQL, arquivos CSV, dentre outros. Esses dados, após lidos pelo script R, são carregados na memória e processados
pelo programa R.

Podemos dizer que R é uma linguagem multiplataforma. O script R é um simples arquivo texto em claro.
Qualquer plataforma que possua um interpretador R pode executar o script sem problema nenhum. Temos
interpretador R para Windows, Mac, Linux, etc.

Existem também soluções para rodar scripts R em um servidor. A vantagem de rodar no servidor é que não
ficamos dependentes dos recursos da máquina local. Podemos deixar o script rodando, processando grandes
quantidades de dados no servidor, sem se preocupar em deixar a estação de trabalho local ligada. Quando o
processamento no servidor terminar, é só se conectar e ver os resultados.

Uma das grandes vantagens do R é sua extensibilidade. Ele possui uma riquíssima gama de bibliotecas
desenvolvidas pela comunidade de programadores R com diversas funcionalidades prontas. É só instalar o pacote
da biblioteca e fazer uso das funções. São mais de 5000 pacotes gratuitos abertos para download desenvolvidos
tanto por empresas (Google, AT&T, ...) quanto por universidades ao redor do mundo.
O R é mais que um software estatístico. É um ambiente que permite explorar dados interativamente, mas à
medida que a análise evolui, é uma linguagem de programação completa para desenvolver e automatizar soluções

5 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

e implementar pacotes. É uma ferramenta poderosa para manipulação, processamento, visualização e análise de
dados, além de possibilitar também simulações e análises estatísticas.

Nesta aula, iremos estudar a linguagem R utilizando a IDE RStudio.

Desenvolver no RStudio tem diversas vantagens como:


* highlight do código; autocomplete;
* preenchimento automático de parêntesis e chaves;
* interface intuitiva para objetos, gráficos, scripts;
* organização dos arquivos em projetos;
* interação com HTML; etc.

Você pode baixar o RStudio gratuitamente a partir do link [Link]

Não é obrigatório você instalar o RStudio na sua máquina. Se estiver com pouco tempo, pode acompanhar somente o PDF
desta aula e a videoaulas. O RStudio é só para o caso de você querer se aprofundar ou tiver alguma dúvida específica e quiser
executar um código por conta própria.

Como dissemos, o RStudio um software bem intuitivo para desenvolver scripts em R. A janela principal do
RStudio tem a aparência abaixo.

Variáveis, objetos
Editor de código-fonte R

Arquivos
Console

O painel superior esquerdo do RStudio é o editor de texto onde você vai escrever seus Scripts. Ele possui
code highlighting entre outras funcionalidades.

6 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

No canto inferior esquerdo fica o console. O console nada mais é do que uma seção aberta de R, em que os
comando são executados.

A área de trabalho e histórico ficam no canto superior direito. Os objetos criados na seção e o histórico dos
comandos podem ser acessados ali.
Arquivos, Gráficos, Pacotes e Ajuda ficam no canto inferior direito. Você pode explorar pastas e arquivos
diretamente do RStudio na aba “Files”. Os gráficos que forem feitos apareceram na aba “Plots”. Os pacotes
instalados em sua máquina estão listados em “Packages”. As ajudas das funções aparecem em “Help”. E o
“Viewer” serve para visualização de imagens/páginas em HTML e JavaScript.

Scripts em R
Vamos começar a explorar a linguagem R dando alguns exemplos práticos para você visualizar como a
tecnologia funciona.

Observe o código abaixo.

Comando para plotar em um gráfico a


sequência dos números inteiros de 1 a 10.

Gráfico plotado após a execução


do comando plot(1:10).

O primeiro comando “# Gráfico dos números de 1 a 10” é, na verdade, um comentário. Comentários em


Scripts do R são seguidos do símbolo #, e tudo que estiver após # não será executado. É uma boa prática comentar
seu código, para que ele seja de fácil manutenção, tanto para você mesmo quanto para outros colegas. O segundo
comando é de um gráfico. Aperte “ctrl” + “enter” nas duas linhas. O gráfico aparecerá no canto inferior direito do
RStudio.

7 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Agora, vamos incluir um comando de atribuição de um valor a uma variável na linha 3.

Atribuição de 15 à variável x
Após a atribuição, a IDE mostra a
variável em memória e o seu valor

8 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Vamos agora usar a função mean, para calcular a média da sequência de números inteiros de 1 a 10.

Comando para calcular a média

Resultado do cálculo da média, que é 5.5

A função mean calcula a média aritmética simples entre uma conjunto de números. Neste caso específico,
1+2+3+4+5+6+7+8+9+10
𝑚𝑒𝑎𝑛(1: 10) = = 5.5.
10

Você poderia ficar em dúvida sobre a função mean. A qualquer tempo você pode dar o comando ?mean ou help(mean) para
obter ajuda sobre o funcionamento da função. Isso vale não só para a função mean como também para toda e qualquer função
do R.

É só dar o comando ?função ou help(função) para obter ajuda sobre a função.

9 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Tipos de dados
Primitivos
Para ter um bom entendimento de programação em R, é necessário ter uma ideia bem clara dos tipos e
estrutura de dados e como realizar operações sobre esses dados. Além disso, a conversão entre tipos de dados é
outra tarefa frequente. Você deve ter bem firme na sua mente que tudo em R é um objeto!

R tem 6 tipos primitivos de dados.

Tipos primitivos em R

raw Tipo de dado bruto

character Texto Ex: “a”, “concurso público”

numeric Número (inteiro ou decimal) Ex: 2 , 3.14

Ex: 2L (o L ao final explicita para


integer Número inteiro
o R que é um inteiro)

logical Booleano verdadeiro ou falso TRUE, FALSE

complex Números complexos 1+4I

Existem algumas funções auxiliares úteis que podem ser usadas quando se deseja saber mais informações a
respeito dos dados.

Funções auxiliares sobre tipos de dados

class() Obtém a classe do objeto do dado (alto nível)

typeof() Obtém o tipo do objeto (baixo nível)

length() Obtém o comprimento do dado

atributes() Obtém os metadados do dado

10 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Vetores
Vetores são estruturas de dados unidimensionais. São coleções ordenadas de objetos, todos do mesmo tipo.
Os vetores no R podem ser, entre outros, de tipos: numeric (número comum), integer (inteiro), complex (número
complexo), character (texto), logical (lógicos, booleanos). Também há datas e fatores, que discutiremos mais a
frente.

Textos podem ser criados com aspas duplas ou simples. Uma função útil para criar objetos do tipo character()
no R é a função paste().

Você pode forçar a conversão de um vetor de uma classe para outra com as funções [Link] (sendo “xxx” a
classe). Entretanto, nem sempre essa conversão faz sentido, e pode resultar em erros ou NA’s. Por exemplo:

11 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Objetos podem ter elementos nomeados. Por exemplo, vamos nomear os elementos do vetor numero
utilizando a função names.

Você pode acessar elementos de um vetor por meio de colchetes ([]).

12 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Isso também funciona com nomes, caso o vetor seja nomeado.

Você pode usar índices negativos.

13 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

14 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Você pode usar o assignment operator junto com colchetes para alterar apenas elementos específicos do
vetor.

A função order() retorna um vetor com as posições para que um objeto fique em ordem crescente.

A função sort() retorna o vetor ordenado.

15 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Listas
Listas são muito semelhantes a vetores. Em R, tanto listas quanto vetores são coleções de dados. A única
diferença entre uma lista e um vetor é que vetores são coleções de objetos do mesmo tipo e listas podem ter
objetos de tipos diferentes.

Em outras palavras, uma lista pode ter uma mistura de objetos do tipo character, number, integer, string,
etc. A lista pode ter até outras listas como elementos.

Fora isso, a forma de manipular uma lista é semelhante ao tratamento de vetores. Você pode nomear os
elementos da listas com a função names. Pode acessar elementos com colchetes [] ou com $, se os elementos
possuírem nome. Pode concatenar objetos com listas e até mesmo lista com lista por meio da função c.

16 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Matrizes
Matrizes são estruturas de dados bidimensionais, todos os dados do mesmo tipo. Podem ser vistas como
um “empilhamento” de vetores.
𝑎11 𝑎12 … 𝑎1𝑛
𝑎21 𝑎22 … 𝑎2𝑛
𝐴=[ … … … …]
𝑎𝑛1 𝑎𝑛2 … 𝑎𝑛𝑛

Para construir matrizes em R, use a função matrix da seguinte forma.

Ou também assim.

17 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

As funções nrow e ncol identificam dimensões das matrizes.

Você pode também construir matrizes a partir de vetores com o auxílio das funções cbind e rbind. Observe
um exemplo de criação de matrizes a partir dos vetores A e B, definidos abaixo.

18 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Podemos utilizar a função rownames() para nomear as linhas e colnames() para nomear as colunas de uma
matriz.

Data frames
Um [Link] é similar a um banco de dados, onde as colunas representam variáveis e linhas observações.
Mais formalmente é objeto de duas dimensões e o que difere o [Link] de uma matriz é que os elementos de
um [Link] não precisam ser necessariamente numéricos ou todos da mesma classe.

Observe que os objetos da matriz sofreram coerção para a classe character. As dimensões do [Link]
são nomeadas de maneira identica às matrizes pois possuem duas dimensões, ou seja, por meio das funções
rownames() e colnames().

19 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Para acrescentar linhas (ou colunas) nas matrizes e [Link], infelizmente não é só acrescentar o sinal
(+). Uma das formas é dar um nome a uma linha (ou coluna), sendo que nome não pode ter sido utilizado
anteriormente.

A função with() serve para acessar os elementos do objeto (Exemplo: a coluna de um [Link]) sem
precisar ficar usando o nome do objeto toda hora. Exemplo.

20 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Lembre-se que podemos fazer uma analogia do [Link] a um banco de dados. O funcionamento é
basicamente o mesmo, organizar dados em linhas e colunas. Da mesma forma, o with() é análogo a fazer uma
consulta SQL do tipo SELECT FROM WHERE ... O with() seleciona com base em um critério, da mesma forma que
o SELECT do SQL. É uma forma de consultar o data frame.

Outra forma de fazer seleções de elementos no [Link] é por meio da função subset. Ela realiza a mesmo
objetivo da função with() mas possui sintaxe diferente. Veja abaixo.

Operações básicas
Atribuição
No R, tudo é um objeto. Estes objetos podem ser variáveis, vetores, matrizes, arrays, números, caracteres e,
inclusive, funções. Durante o uso do R, você irá criar e guardar estes objetos com um nome, por exemplo:

O operador <- é conhecido como assignment operator (operador de atribuição) e, no caso acima, atribuiu o
valor 10 a um objeto de nome x1. Na maior parte das vezes, o operador = é equivalente. Vejamos:

Entretanto, recomenda-se o uso do <- pois ele funciona sempre como atribuição, enquanto que o operador
= é usado em parâmetros dentro de um função e o comportamento é diferente (veremos isso mais a frente).

O assignment operator <- é uma função. Uma função equivalente ao <- é a função assign("nomeObjeto",
valorObjeto). Deste modo, o operador <- pode ser visto como um atalho para a função assign().

21 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Uma vez que você atribuiu uma variável a um nome, você pode utilizá-la em operações e funções utilizando
seu nome.

22 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Concatenação
No R, a estrutura mais simples de dados é um vetor. Os objetos x1, x2 e x3 são, na verdade, vetores de
tamanho 1. Para construir um vetor você pode utilizar a função c(), que concatena uma quantidade arbitrária de
objetos.

Aritméticas
O R tem uma série de operadores de aritmética básica e todos são vetorizados. Dizemos que um operador
em R é vetorizado quando ele suporta operações não só escalares, mas também sobre vetores.

Professor, que trem é esse de operação sobre escalares e sobre vetores?

É o seguinte. Pense nos números 2 e 3. São dois números escalares, sozinhos, isto é, não são vetores. É fácil
entender uma operação de adição sobre escalares. Para fazer essa operação de adição sobre os escalares é só
fazer 2+3 = 5.

Agora imagine 2 vetores, [ 1 , 3 , 0] e [ 2 , 5 , 7]. É possível aplicar a mesma operação de adição sobre esses
vetores da seguinte forma: [ 1 , 3 , 0] + [ 2 , 5 , 7] = [ 1 + 2 , 3 + 5 , 0 + 7 ] = [ 3 , 8 , 7 ]. É só somar os elementos do vetor
1 a 1. Isso é uma soma vetorial.

Todos os operadores aritméticos (soma, subtração, multiplicação, divisão, exponenciação, resto) podem
funcionar tanto com escalares quanto com vetores. O R já tem toda a manha e consegue identificar se os
operandos são escalares ou vetores e aplicar corretamente o operador.

Os operadores nada mais são do que um atalho conveniente para funções, isto é, 1+2 é a mesma coisa de
‘+‘(1,2), onde utilizamos os backticks para acessar funções com nomes especiais.

Vejamos alguns operadores aritméticos.

23 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Soma e Subtração

Multiplicação e Divisão

24 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Exponenciação, Divisão Inteira, Resto

25 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Booleanas
Os operadores booleanos atuam sobre operandos de diversos tipos e retornam sempre um resultado
booleano, isto é, lógico: TRUE ou FALSE.

Veja a seguir uma tabela com os principais operadores booleanos em R.

Operação Operador no R

menor que <

menor ou igual que <=

maior que >

maior ou igual que >=

exatamente igual que ==

diferente de !=

A ou B AB

AeB A&B

26 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Funções matemáticas
Além dos operadores básicos, há uma série de funções matemáticas, tais como:

Há também funções que operam com todos os valores do vetor. Por exemplo, a função sum() retorna o
somatório ou a função prod() o produtório. Essas funções também têm sua versão acumulada.

27 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

28 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Funções estatísticas
Como a principal aplicação do R é análise estatística, as funções estatísticas não poderiam faltar. Funções
para variância, desvio-padrão, correlação e mediana são executadas facilmente da seguinte forma.

29 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Matriciais
R possui operadores próprios para trabalhar com matrizes. Abaixo um resumo com os principais operadores
matriciais.

Operação Notação matemática Função no R

Soma 𝑋+𝑌 X+Y

Transposta 𝑋𝑇 t(X)

Produto 𝑋𝑌 X %*% Y

Produto (por elemento) {𝑥𝑖 × 𝑦𝑖 } X*Y

Inversa 𝑋 −1 solve(X)

Divisão 𝑋 −1 𝑌 solve(X,Y)

Divisão (por elemento) {𝑥𝑖 ÷ 𝑦𝑖 } X/Y

Diagonal 𝑑𝑖𝑎𝑔(𝑋) diag(X)

Determinante det(𝑋) det(X)

Note que por default o R trabalha os operadores de multiplicação e divisão elemento a elemento. Por
exemplo, se você colocar X*Y, o R vai entender que é uma multiplicação elemento a elemento. Caso queira fazer
uma multiplicação matricial, use o operador X %*% Y.

30 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Estruturas de repetição
for
A estrutura for serve executar um comando (e.g. script ou função) um certo número de vezes seguindo um
índice.

R é uma linguagem C-like. Isto significa que os blocos de programação são delimitados pelas chaves { }.
Dentro das chaves do for você pode colocar um bloco de instruções, uma função ou até mesmo outro for aninhado.

No exemplo abaixo, colocamos uma simples função dentro do for.

A cada rodada do laço, ele aplica a função sobre o elemento de índice i do vetor X.

Um exemplo de uma estrutura for iterando sobre um vetor. Para um vetor x = { 1, 2 , 3 , 4 , 5 } aplicar a função
f (x) = 1 - exp(x) para cada elemento de x.

31 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

If-else
A estrutura if-else serve para verificar se uma condição lógica é verdadeira e dependendo do resultado (TRUE
ou FALSE) executa uma rotina diferente.

Em R, a sintaxe do if-then é a seguinte.

Temos também o if-then-else, que tem a seguinte estrutura.

32 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

A sintaxe do if-then-else é a abaixo.

while
A estrutura de programação while tem como objetivo executar um bloco de comandos (ou função ou rotina)
iterativamente enquanto uma determinada condição estiver sendo atendida. Quando a condição deixar de ser
atendida, ele sai do laço e para a execução.

Se a condição de parada estiver mal definida, o while pode entrar em loop infinito.

33 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Exemplo de uso do while. Uma rotina para calcular o mdc (máximo divisor comum) entre 2 números.
Observe abaixo como poderíamos usar o while para isso.

Dividir m por n e armazenar o resto em r

Se r = 0 então n é a resposta

Se não, continue o loop até encontrar

Com a função mdc implementada da forma acima, podemos chama-la para calcular o mdc entre quaisquer
números.

34 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

repeat-break
A estrutura de programação repeat-break é muito parecida com o while, mas permite um pouco mais de
flexibilidade. Observe como o repeat-break funciona pelo fluxograma abaixo.

A sintaxe do repeat-break é a seguinte.

A linguagem R começou a ser cobrada recentemente em concursos públicos. Não há uma base grande de
questões. Só encontrei 3 questões na base sobre R. As 3 questões foram elaboradas pelo CESPE nas provas de
2018 para Agente e Perito da Polícia Federal. Vamos resolvê-las.

35 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Questões comentadas pelo professor


1. (CESPE - 2018 - Polícia Federal - Agente de Polícia Federal)

Julgue os próximos itens, relativos a noções de programação Python e R.

Considere o programa a seguir, escrito em R.

x <- c (3, 5, 7)
y <- c (1, 9, 11)
print (x + y)

Após a execução do programa, será obtido o seguinte resultado.


[1] 36

RESOLUÇÃO:

Na 1ª linha, ele cria um vetor por meio da função c (de concatenação) e armazena o vetor na variável x que fica
com o conteúdo [ 3 , 5 , 7 ].

Na 2ª linha, ele cria um vetor por meio da função c (de concatenação) e armazena o vetor na variável y que fica
com o conteúdo [ 1 , 9 , 11 ].

Na 3ª linha, ele “printa” (imprime no console) o resultado da operação x + y. Neste momento, temos que entender
bem que operação é essa de adição entre x e y. Como x e y são vetores, será uma soma vetorizada.

x + y = [ 3 , 5 , 7 ] + [ 1 , 9 , 11 ] = [ 3+1 , 5+9 , 7+11] = [ 4 , 14 , 18]

É esse resultado que será impresso no console e não 36, como afirma o Cespe nesta questão. Portanto, gabarito
afirmativa Falsa!

Resposta: Falso

36 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

2. (CESPE - 2018 - Polícia Federal - Agente de Polícia Federal)

Considere o programa a seguir, escrito em R.

x <- TRUE
y <- FALSE
print (xy)

Após a execução do programa, será obtido o seguinte resultado.

[1] FALSE

RESOLUÇÃO:

Na 1ª linha, ele atribui à variável x um booleano verdadeiro (true).

Na 2ª, atribui a y o valor booleano falso (false).

Na 3ª linha, faz xy, o que parece ser uma multiplicação de x por y. Mas cuidado! Isso é uma pegadinha. Essa notação
de omitir o sinal de multiplicação (x) é coisa da matemática. Em linguagem de programação não dá pra omitir
assim o operador. Temos que ser explícitos.

Neste caso, o interpretador do R vai acusar um erro, dizendo que não reconhece a variável xy. Ele entende que xy
é o nome de uma variável nova e tenta buscar esse valor na memória para dar o print. Como não encontra nenhuma
variável xy ele dá o erro.

Logo, o resultado da execução do script não vai ser o FALSE afirmado no enunciado e sim um erro.

Resposta: Falso

3. (CESPE - 2018 - Polícia Federal - Perito Criminal Federal - Conhecimentos Básicos - Todas as Áreas)

Considere os comandos a seguir, na linguagem R, os quais serão executados no ambiente do R, e considere, ainda,
que > seja um símbolo desse ambiente.

> helloStr <- "Hello world!"


> print(helloStr)

Nesse caso, após a execução dos comandos, será obtido o resultado a seguir.

[1] "Hello world!"

37 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

RESOLUÇÃO:

Na 1ª linha, ele usa o assignment operator (operador de atribuição) para atribuir o string “Hello world!” à variável
de nome helloStr.

Na 2ª linha, ele manda imprimir no console, por meio da função print, o conteúdo da variável helloStr, que é
justamente o texto “Hello world!”. Sem mistério. É justamente esse texto que será impresso no resultado.

Questão trivial. Somente para assustar quem não estudou R.

Resposta: Certo

38 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Lista de questões comentadas


1. CESPE - 2018 - Polícia Federal - Agente de Polícia Federal)

Julgue os próximos itens, relativos a noções de programação Python e R.

Considere o programa a seguir, escrito em R.

x <- c (3, 5, 7)
y <- c (1, 9, 11)
print (x + y)

Após a execução do programa, será obtido o seguinte resultado.


[1] 36

2. (CESPE - 2018 - Polícia Federal - Agente de Polícia Federal)

Considere o programa a seguir, escrito em R.

x <- TRUE
y <- FALSE
print (xy)

Após a execução do programa, será obtido o seguinte resultado.

[1] FALSE

39 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

3. (CESPE - 2018 - Polícia Federal - Perito Criminal Federal - Conhecimentos Básicos - Todas as Áreas)

Considere os comandos a seguir, na linguagem R, os quais serão executados no ambiente do R, e considere, ainda,
que > seja um símbolo desse ambiente.

> helloStr <- "Hello world!"


> print(helloStr)

Nesse caso, após a execução dos comandos, será obtido o resultado a seguir.

[1] "Hello world!"

40 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Gabarito
1. Falso 3. Certo
2. Falso

41 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Resumo Direcionado
O programa escrito em R é um arquivo texto com extensão .r. O programa é um script de instruções em texto
claro que não é compilado, mas sim interpretado pelo interpretador R.

O bytecode é multiplataforma. Qualquer sistema que possua máquina virtual Python pode executar o
bytecode sem necessidade de recompilação.

42 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

O R é um software livre que possui uma IDE oficial também de distribuição livre chamada RStudio.

Variáveis, objetos
Editor de código-fonte R

Arquivos
Console

Tipos primitivos em R

raw Tipo de dado bruto

character Texto Ex: “a”, “concurso público”

numeric Número (inteiro ou decimal) Ex: 2 , 3.14

Ex: 2L (o L ao final explicita para


integer Número inteiro
o R que é um inteiro)

logical Booleano verdadeiro ou falso TRUE, FALSE

complex Números complexos 1+4I

43 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Funções auxiliares sobre tipos de dados

class() Obtém a classe do objeto do dado (alto nível)

typeof() Obtém o tipo do objeto (baixo nível)

length() Obtém o comprimento do dado

atributes() Obtém os metadados do dado

Operadores Booleanos

Operação Operador no R

menor que <

menor ou igual que <=

maior que >

maior ou igual que >=

exatamente igual que ==

diferente de !=

A ou B AB

AeB A&B

44 de 45| [Link]
Prof. Hamilton Rodrigues
R
Informática p/ Agente e Escrivão da Polícia Federal - 2020

Operadores matriciais

Operação Notação matemática Função no R

Soma 𝑋+𝑌 X+Y

Transposta 𝑋𝑇 t(X)

Produto 𝑋𝑌 X %*% Y

Produto (por elemento) {𝑥𝑖 × 𝑦𝑖 } X*Y

Inversa 𝑋 −1 solve(X)

Divisão 𝑋 −1 𝑌 solve(X,Y)

Divisão (por elemento) {𝑥𝑖 ÷ 𝑦𝑖 } X/Y

Diagonal 𝑑𝑖𝑎𝑔(𝑋) diag(X)

Determinante det(𝑋) det(X)

45 de 45| [Link]

Você também pode gostar