Julho, 2015

Interagindo com o computador

Escrevendo código

O que significa este ícone?

  • É um documento do Microsoft Excel? Não!
  • É um arquivo de texto pleno, separado por vírgulas (CSV comma separated values)
  • De fato, o nome do arquivo é final.csv e não final
  • O Excel pode sim abrir este arquivo… assim como milhares de outros programas!

Escrevendo código

  • O computador (leia-se, nesse caso, o sistema operacional Windows) "proteje" o usuário dos detalhes sujos
  • Isso é ruim? Sim!
  • O usuário se acostuma com o computador ditando as regras
  • É importante lembrar que é você quem deve dizer o que o computador deve fazer (nesse caso, com qual programa abrir certo arquivo)

Escrevendo código

  • Para a maioria dos usuários, a interação com o computador se limita a clicar em links, selecionar menus e caixas de diálogo
  • O problema com essa abordagem é que parece que o usuário é controlado pelo computador
  • A verdade deve ser o oposto!
  • É o usuário que possui o controle e deve dizer para o computador exatamente o que fazer
  • Escrever código ainda tem a vantagem de deixar registrado tudo o que foi feito

Escrevendo código

Aprender a interagir com o computador através de uma linguagem de programação, coloca o usuário na sua posição original de poder!

Escrevendo código

Uma linguagem de programação nos permite interagir não só com outros softwares, mas também com o nosso hardware

Software livre

Software Livre

O que é software livre?

  • Software que pode ser utilizado, estudado e modificado sem restrições
  • Pode ser copiado e redistribuido (modificado ou não)
  • A redistribuição tem uma única restrição: assegurar que os receptores tenham a mesma liberdade
  • Para isso é necessário que os desenvolvedores (ou modificadores) disponibilizem o código fonte!
  • Não confundir software livre com software grátis
  • Livre como em “liberdade de expressão”, não grátis como “cerveja grátis”

Software Livre

Um software só é considerado livre quando é possível ter as 4 liberdades

  1. Liberdade para usar o programa para qualquer propósito
  2. Liberdade para estudar como o programa funciona, e modificá-lo para sua necessidade
  3. Liberdade para redistribuir cópias (e ajudar o seu vizinho)
  4. Liberdade para aprimorar o programa, e redistribuí-lo para que todos se beneficiem

Software Livre

R

O que é o R

Um dialeto do S.

"The statistical software should help, by supporting each step from user to programmer, with as few intrusive barriers as possible."

"… to turn ideas into software, quickly and faithfully."

— John M. Chambers

O que é o R

  • Ambiente estatístico para análise de dados e produção de gráficos
  • Uma completa linguagem de programação:
    • Interpretada (contrário de compilada)
    • Orientada a objetos:

    Tudo no R é um objeto…

  • Livre distribuição (código-aberto)
  • Mais de 6000 pacotes adicionais
  • Versão atual: 3.2.1 (18/06/2015). Ciclo de lançamentos: 6 meses (versões menores), 1 ano (versões maiores).

Histórico

  • 1980: Linguagem S: desenvolvida por R. Becker, J. Chambers e A. Wilks (AT&T Bell Laboratories)
  • 1980: Versão comercial: S-Plus (Insightful Corporation)
  • 1996: Versão livre: R desenvolvido por R. Ihaka e R. Gentleman (Universidade de Auckland)
  • 1997: R Development Core Team
  • Hoje: 20 desenvolvedores principais e muitos outros colaboradores em todo o mundo
  • Estatísticos, matemáticos e programadores

Vantagens

  • A linguagem mais comum em data science, e certamente a mais utilizada em estatística hoje em dia
  • Permite ir rapidamente de dados brutos para gráficos para relatórios dinâmicos para aplicativos web
  • Software livre
  • Funciona em praticamente todos os sistemas operacionais: Unix (Linux, FreeBSD, ), Macintosh e Windows
  • É o produto da cooperação entre estatísticos do mundo todo
  • Linguagem lógica e intuitiva
  • Flexibilidade nas análises estatísticas
  • Gráficos de alta qualidade
  • R no New York Times

Desvantagens

  • Sem interface gráfica (?)
  • Não há visualização direta dos dados
  • Curva de aprendizado longa
  • Pode ser lento com grandes (GB, TB, …) bases de dados
    • Necessidade de vetorização

Data Science? Estatística?

Data Science? Estatística?

  • Conhecimento de matemática e estatística: é o que você está fazendo aqui
  • Habilidade hacker:
    • Saber programar (aqui vamos saber usar o R)
    • Saber responder perguntas sozinho. Procurar, pergunta e vasculhar para conseguir uma resposta. A maioria das respostas não estão respondidas nos livros!
    • Saber usar o Google, SO, quais perguntas você tem, quais respostas você não sabe, e descobrir como usar a informação que você tem para responder o que quer responder.
  • Experiência substancial: depende da área dos dados, da interação com o pesquisador, ou de buscar o conhecimento

Instalação do R

Editores de texto

Uma característica importante de códigos de programação é que eles são em texto puro, por isso precisamos de um bom editor de textos

Características de um bom editor:

  • Identação automática
  • Complementação de parênteses
  • Destaque de sintaxe (syntax highlighting)
  • Numeração de linhas
  • Auto completar comandos

Editores para o R

Windows

  • Interface padrão: pouco recomendado
  • Tinn-R

Linux

  • Vim-R-plugin
  • Gedit-R-plugin

Todas as plataformas

  • Rstudio: recomendado para iniciantes
  • Emacs + ESS: altamente recomendado

Configuração inicial

Configurando o diretório de trabalho

  • O diretório de trabalho é uma pasta onde o R será direcionado. Todos os arquivos que serão importados (base de dados, …) ou exportados (base de dados, gráficos, …) por ele ficarão nesta pasta.
  • No sistema Windows, existem duas maneiras de configurar o diretório de trabalho (suponha que vamos usar a pasta C:\estatcomp1):

Configurando o diretório de trabalho

  • 1) Utilizando a função setwd() dentro do R:
setwd("C:/estatcomp1")

Note que a barra é invertida!

  • 2) Pelo menu do RStudio em Session > Set Working Directory > Choose Directory... Confira o diretório que está trabalhando com a função
getwd()

Visão geral

O R como uma calculadora

O símbolo > indica que o R está pronto para receber um comando:

> 2 + 2
[1] 4

O símbolo > muda para + se o comando estiver incompleto:

> 2 *
+ 2
[1] 4

Espaços entre os números não fazem diferença:

> 2+         2
[1] 4

Para onde vão os resultados?

> 1 + 3 + 5 + 7
[1] 16

  • Note que o resultado é apenas mostrado na tela, nada é salvo na memória (por enquanto)

O editor de scripts (Rstudio)

  • Para criar rotinas computacionais é necessário utilizar um editor de scripts.
  • Clique em File > New file > R script. Salve com a extensão .R.
  • Para enviar comandos diretamente para o console, selecione-os e aperte Ctrl + <Enter>.
  • Para adicionar comentários ao script, utiliza-se o símbolo # antes do texto e/ou comandos. O que estiver depois do símbolo não será interpretado pelo R. Portanto:
2 + 2     # esta linha será executada
# 2 + 2     esta linha não será executada

Operadores aritméticos

Operador Significado
+ adição
- subtração
* multiplicação
/ divisão
^ potência
exp() exponencial
sqrt() raíz quadrada
factorial() fatorial
log(); log2(); log10() logaritmos

Ordens de execução

As operações são realizadas sempre seguindo as prioridades:

  1. De dentro para fora de parênteses ()
  2. Multiplicação e divisão
  3. Adição e subtração

Ordens de execução

> 5 * 2 - 10 + 7
[1] 7
> 5 * 2 - (10 + 7)
[1] -7
> 5 * (2 - 10 + 7)
[1] -5
> 5 * (2 - (10 + 7))
[1] -75

Exercícios

  1. Calcule a seguinte equação: \(32 + 16^2 - 25^3\)
  2. Divida o resultado por \(345\)
  3. Qual o resultado da expressão \(\frac{e^{-2} 2^{4} - 1}{4!}\)?
  4. E do logaritmo desta expressão?

"Salvando" resultados

Do exercício anterior

> x <- 32 + 16^2 - 25^3
> x
[1] -15337
> x/345
[1] -44.45507
> (y <- (exp(-2) * 2^4 - 1)/factorial(4))
[1] 0.04855686
> log(y)
[1] -3.02502

"Salvando" resultados

Quando criamos uma variável (x, y), ela fica armazenada temporariamente na memória RAM.

Para saber quais objetos estão criados, usamos a função ls()

> ls()
[1] "x" "y"

"Salvando" resultados

Estas variáveis ficam armazenadas no chamado workspace do R

  • O workspace consiste de tudo que or criado durante uma sessão do R, armazenado na memória RAM

Para efetivamente salvar esas variáveis, podemos armazenar esse workspace do R em disco, em um arquivo chamdo .Rdata

"Salvando" resultados

  • Quando o R é iniciado em um diretório com um arquivo .Rdata, as variáveis salvas são automaticamente carregadas
  • No entanto, é sempre melhor salvar os dados e o script, assim é possível gerar os resultados novamente, sem salvar nada sem necessidade
  • Veremos mais pra frente como salvar variáveis específicas, por exemplo, resultados de uma análise que leva muito tempo para ser executada
  • O mais importante é salvar o código, assim sabemos como chegamos a determinado resultado, e podemos recriá-lo depois

Finalizando o programa

Finalizando o programa

A qualquer momento durante uma sessão você pode usar o comando

> save.image()

No RStudio:

  • File > Save As...
  • Na janela que abrir, digite o nome do arquivo (por exemplo script_aula1) e salve
  • Automaticamente o script será salvo com a extensão .R (nesse caso script_aula1.R) no diretório de trabalho que você configurou no início

Finalizando o programa

Alternativamente, você pode também salvar toda sua área de trabalho, clicando em Workspace > Save As Default Workspace. Este processo irá gerar dois arquivos:

  • .Rdata: contém todos os objetos criados durante uma sessão. Não é necessário (e nem recomendado) dar um nome antes do ponto. Dessa forma, a próxima vez que o programa for iniciado neste diretório, a área de trabalho será carregada automaticamente.
  • .Rhistory: um arquivo texto que contém todos os comandos que foram digitados no console.

Referências

Referências