Programação para Data Science
Jony Arrais Pinto Junior
So ware R
O so ware R
• O R é uma linguagem e um ambiente de desenvolvimento integrado
para análise de dados, que inclui:
• Instalação eficaz de tratamento e armazenamento de dados;
• Conjunto de operadores para cálculos em numéricos, em vetores e
matrizes;
• Grande coleção coerente e integrada de ferramentas intermediárias
para análise de dados;
• Instalações gráficas para análise de dados e exibição na tela ou em
console;
• Linguagem de programação bem desenvolvida, simples e eficaz que
inclui condicionais, loops, funções recursivas definidas pelo usuário e
instalações de entrada e saída.
O so ware R
• A linguagem é bastante intui va (tenta va e erro!).
• O aprendizado de uma função (plot) isso pode ser facilmente repli-
cado para funções similares (barplot).
• É um so ware gratuito sob uma licença referida no Comprehensive
R Archive Network - CRAN (uma rede de servidores no qual cada ser-
vidor é conhecido como espelho).
O so ware R
• O fato do R ser uma linguagem pode desencorajar alguns usuários
que pensam “não consigo programar”.
• Este não deve ser o seu caso!!!
• O R foi desenvolvido por analistas esta s cos → códigos poucas li-
nhas de comando quando comparado com C++, java ou Python.
• R é uma linguagem interpretada e não compilada → comandos exe-
cutados diretamente, sem exigir a criação de um programa completo.
• A sintaxe do R busca ser intui va.
O so ware R
• Por exemplo, para ajustar um modelo de regressão linear conside-
rando y e x, no inglês seria um linear model, no R ajustamos a regres-
são usando lm(y ∼ x).
• O R é um so ware aberto → con nuamente melhorado, atualizado,
expandido pela comunidade.
• Quando o R está sendo executado, variáveis, dados, funções, resul-
tados, etc., são armazenados na memória a va do computador na
forma de objetos que possuem um nome.
• O usuário pode fazer ações nesses objetos com operadores (aritmé-
ca, lógica, comparação, …) e funções (que são eles próprios objetos).
Uma função no R
• Uma função no R pode ser esboçada da seguinte maneira.
• Os argumentos podem ser objetos (“dados”, fórmulas, expressões,
…).
• Alguns argumentos podem estar pré-definidos (podem ser
modificados).
• Podem exis r funções sem nenhum argumentos (todos
pré-definidos).
Uma função no R
• Vamos considerar a função que calcula o desvio padrão:
sd(x, [Link] = FALSE)
• A função possui dois argumentos: x e [Link].
• x é um vetor numérico (valores) e [Link] é um operador lógico (des-
considerar os valores faltantes).
• [Link] é um argumento pré-definido.
• Para executar a função, obrigatoriamente precisamos inserir o argu-
mento x.
Porque usar o R?
Empresas que usam o R
O que usaremos nesse curso
RStudio
• É um ambiente de desenvolvimento integrado para o R.
• Inclui recursos que permite: aumentar a produ vidade e é executado
em todas as principais plataformas.
• Sua interface facilita o uso do R.
Instalando o R e o RStudio
Instalando R e RStudio
• Para instalar a úl ma versão do R, siga os seguintes passos:
• Vá no site h ps://[Link];
• Faça download do arquivo;
• Clique em em executar.
• Para instalar a úl ma versão do RStudio, siga os seguintes passos:
• Vá no site h ps://[Link]/home/;
• Faça download da versão free;
• Clique em em executar.
Conhecendo o RStudio
RStudio
• Editor/Scripts: é onde escrevemos nossos códigos.
• Console: é onde executamos o código e recebemos as saídas. O R
vive aqui!
• Environment: painel com todos os objetos criados na sessão.
• History: painel com um histórico dos comandos executados.
• Files: mostra os arquivos no diretório de trabalho. É possível navegar
entre diretórios.
• Plots: painel onde os gráficos serão apresentados.
• Help: janela onde a documentação das funções serão apresentadas.
Executando comandos no R
• Insira no seu script os comandos acima.
• Para executar qualquer uma das linhas basta posicionar o cursor na
mesma e clicar em Run (pode executar várias linhas selecionando to-
das).
Salvando um script
• Clique em File > clique em Save ou Save as.
Pacotes
• Imagine que você esteja interessado em fazer algum processamento
de linguagem natural de textos coreanos, como realizar esta tarefa
no R?
• Muito provavelmente, os pacotes do R possuem (ou devem possuir
com probabilidade tendendo à 1) as funções que vocês precisam!
• Os pacotes do R são coleções de funções e conjuntos de dados de-
senvolvidos pela comunidade.
• Eles aumentam o poder do R, melhorando as funcionalidades de base
do R existentes ou adicionando novas.
Como instalar um pacote?
• A forma de instalar dependerá de onde o pacote se encontra.
• Podemos instalar pacotes do CRAN ou do GITHUB, por exemplo.
• Para instalar da CRAN, você precisará apenas usar
[Link](“maptools”)
• Para instalar do GITHUB, você precisará.
devtools::install_github(“qspa alR/qspa al”)
• Não esquecer que para instalar um pacote o nome precisa estar entre
aspas.
Pacote
• Após o uso da função [Link], o pacote foi adicionado ao seu
computador.
• Para ter acesso as funções existentes no pacote é preciso carregá-lo,
fazemos isso com a função library:
library(maptools)
• Esse procedimento deve ser realizado em toda sessão de trabalho.
• Para visualizarmos todas as funções existentes em um pacote:
ls(“package:maptools”)
Pedindo ajuda no R
• Para acessar a documentação das funções do R:
help(nome_da_funcao) ou ?nome_da_funcao.
Novos amigos
• h ps://stackoverfl[Link]/
• h ps://[Link]/
• Os h p://[Link]/
Encerrando uma sessão no R
• Clique em File > clique em Quit Session.
Encerrando uma sessão no R
• Se seus scripts já es verem salvos, não salve o workspace.
Criando e visualizando objetos no R
• Abram o arquivo Script1.R
• Para atribuir uma valor à um objeto basta digitar o comando <- ou =
nome_do_objeto = ...
• Classes dos objetos:
• numérico (inteira, caso par cular);
• character;
• data;
• lógica (TRUE ou FALSE).
• O entendimento destes objetos e manipulação dos mesmos, nos per-
mi rão realizar análises de dados.
Vetores
• Conjunto de elementos de uma mesma natureza.
• Podem ser numéricos ou caracteres.
• Para verificar a classe de um objeto, use a função class ou str.
• É possível realizarmos operações matemá cas e lógicas com estes ob-
jetos.
• Por exemplo, venda.1sem/6 retornará uma es ma va para a venda
média por mês de cada loja.
Operações matemá cas no R
Operações lógicas no R
• Os operadores acima verificam se uma situação é verdadeira ou falsa.
Operações lógicas no R
• Existem operadores lógicos que analisam de maneira mais ampla se
uma situção é verdadeira ou não:
• Operador E - Retorna verdadeiro se toda a expressão for verdadeira.
No R fazemos uso do operador &.
condição 1 & condição 2 & ... & condição N,
se todas as N condições forem sa sfeita é retornado TRUE.
• Operador OU - Retorna verdadeiro se ao menos uma das partes da
expressão for verdadeira. No R fazemos uso do operador |.
condição 1 | condição 2 | ... | condição N,
se ao menos uma das N condições forem sa sfeita é retornado TRUE.
Valores especiais
• Existem valores reservados para representar dados faltantes, infini-
tos, e indefinições matemá cas.
• NA (Not Available) significa dado faltante/indisponível.
• NaN (Not a Number) representa indefinições matemá cas, como 0/0
e log(-1).
• Inf (Infinito) é um número muito grande ou o limite matemá co, por
exemplo, 1/0 e exp(10000).
• NULL representa a ausência de informação. (NA - esta s ca e NULL -
programação)
• Use as funções [Link](), [Link](), [Link]finite() e [Link]() para testar se
um objeto é um desses valores.
Tibbles
• No mundo real os dados não estão con dos em uma unica dimensão
(vetor), na maioria dos casos o número de dimensões é muito maior.
• Por exemplo, no caso das vendas, possuimos os dados de vendas, no
1 e 2 semestre, a localidade da loja e o número de funcionários.
• Neste po de cenário o adequado é o uso de tabelas.
• No R as tabelas são chamadas de Data Frame.
• Mas trabalharemos com uma versão mais moderna do data frame
chamada de bble.
Tibbles
• É possível acessar variáveis, indivíduos ou um dado específico no b-
ble.
• É possível incluir mais dados em bbles existentes, usando inclusive
os operadores matemá cos e lógicos.
• A função summary ajuda a obter medidas resumos da base de dados.
• Algum problema com os resultados da função summary?
• É preciso fazer um tratamento dos dados quando o mesmo es verem
codificados.
Tibbles
• O po de dados factor é usado para representar dados qualita vos
(não ordenados).
• Para variáveis qualita vas ordenadas usamos o ordered.
• Após o tratamento adequado dos dados, as funções retornam medi-
das adequadas ao po de dado (variável).
Listas
• Listas podem ser consideradas uma espécie de contêiner que arma-
zena diferentes pos de objetos em diferentes dimensões, não im-
portando a sua classe.
• Para criar uma lista basta usar a função list.
• Manipulações destes objetos são de extrema relevância quando se
desejar retornar outputs com naturezas e/ou dimensões dis ntos.
Condicionamento
• Em certas ocasiões, queremos ou precisamos executar parte do có-
digo apenas se alguma determinada condição for atendida.
• O R fornece algumas opções básicas para estruturar seu código:
• if(…);
• if(…) else;
• ifelse(…).
if(...)
• A estrutura básica do if(…) é a seguinte:
if(condicao){
conjunto de comandos que serão executados
caso a condição seja TRUE
}
• Notem que, o início do código se dá com o comando if seguido de
parênteses e chaves.
• Dentro do parênteses é preciso conter uma (ou mais) condição(ões)
lógica(s), que deverá ter como resultado ou TRUE ou FALSE.
• Dentro das chaves temos um conjunto de comandos que serão exe-
cutado se a condição do parênteses for TRUE.
if(...) else
• A estrutura básica do if(…) else é a seguinte:
if(condicao){
conjunto de comandos que serão executados
caso a condição seja TRUE
}else{
conjunto de comandos que serão executados
caso a condição seja FALSE
}
• Percebam que o início do código se dá do mesmo modo que no caso
anterior, com o comando if seguido de parênteses e chaves.
• Novamente, dentro do parênteses é preciso conter uma condição ló-
gica, que deverá ter como resultado ou TRUE ou FALSE.
if(...) else
• Dentro das chaves do if(…) temos um conjunto de comandos que se-
rão executado se a condição do parênteses for TRUE.
• Logo em seguida temos a presença do opcional else, seguido de cha-
ves.
• Dentro das chaves do else temos um conjunto de comandos que se-
rão executado se a condição do parênteses for FALSE.
ifelse(...)
• Os comandos if(…) e if(…) else não são vetorizados
• A função ifelse(…) tem a seguinte estrutura básica:
ifelse(conjunto de condicoes, valor se TRUE, valor se
FALSE)
• Notem que, o primeiro argumento trata-se de um conjunto de con-
dições (que podem ser aplicadas em um vetor), que retornará vários
TRUE e FALSE.
• Já o segundo argumento trata-se do valor que será retornado quando
o elemento do conjunto de condicoes for TRUE.
• E o terceiro argumento trata-se do valor que será retornado quando
o elemento do conjunto de condicoes for FALSE.
Loopings
• Imagine que você tem um código em R, e precisa que uma mesma
sequência de tarefas sejam executadas repe damente.
• Estas repe ções podem ocorrer por um númere pré-estabelecido de
vezes ou enquanto uma condição não for sa sfeita.
• O R fornece algumas opções básicas para estruturar seu código:
• for(…);
• while(…).
for(...)
• Um looping que u liza o for(…) no R tem a seguinte estrututa básica:
for(j in conjunto de valores){
conjunto de comandos que
serão repetidos tantas vezes
quanto for o tamanho do conjunto de valores
}
• Notem que, o início do loop se dá, de forma bem similar ao if, com o
comando for seguido de parênteses e chaves.
• Dentro do parênteses temos um indicador que será usado durante o
loop (no caso escolhemos o j para representar este indicador) e um
conjunto de valores que será iterado (chamado aqui de conjunto de
valores).
• Dentro das chaves temos o conjunto de comandos que será execu-
tado durante o loop.
while(...)
• Um looping que u liza o for(…) no R tem a seguinte estrututa básica:
while(condicao for satisfeita){
conjunto de comandos que
serão repetidos
enquanto a condicao continuar retornando TRUE
}
• Notem que, o início do loop se dá com o comando while seguido de
parênteses e chaves.
• Dentro do parênteses, temos uma condição que será verificada a cada
iteração.
• Dentro das chaves, temos o conjunto de comandos que será execu-
tado enquanto a condição retornar TRUE.
Criando funções no R
• Uma grande vantagem no R é a possibilidade de criar funções de
forma fácil.
• Uma função, pode ser vista, como uma sequência de passos que você
deseja que o programa execute.
• Quando fazemos o uso de um pacote, na verdade estamos usando
funções que outras pessoas já criaram.
• Ao criar uma função é muito importante definir suas entradas (argu-
mentos) e saídas (resultados a serem retornados).
Criando funções no R
• Para criar uma função no R, precisamos u lizar a função func on(…)
que tem a seguinte estrutura básica:
[Link] = function(argumentos){
conjunto de comandos que
serão realizados }
• Podemos usar estruturas de condição e repe ção e outras funções
existentes.
• Dentro do parênteses, temos uma condição que será verificada a cada
iteração.
• Dentro das chaves, temos o conjunto de comandos que será execu-
tado enquanto a condição retornar TRUE.