R pragmático
Julio Trecenti
2016-10-19
1 Setup
O minicurso “R pragmático” é baseado no tidyverse
(universo “arrumado”), um conjunto de pacotes do R que auxiliam o estatístico / cientista de dados na execução de diversas tarefas corriqueiras de forma eficiente e unificada. Pense em eficiência, mas não no sentido de velocidade de execução de algoritmos, mas sim na velocidade de solução de problemas.
Atualmente, o melhor lugar para aprender sobre o tidyverse
é no livro R for data science. Nesse minicurso abordamos partes desse livro e adicionamos outros, como práticas de modelgem preditiva e estudos de caso.
Público-alvo
- Estudantes de graduação em estatística que desejam ganhar tempo nos trabalhos da faculdade e entrar no mercado de trabalho com bons diferenciais.
- Profissionais do mercado de trabalho que desejam inserir o R mo fluxo de atividades do setor/empresa.
- Acadêmicos com interesse em tornar suas análises e códigos mais legíveis, reprodutíveis, eficientes e organizados.
Workflow das aulas:
- Aulas no laboratório de computação (CEC). Não precisa (mas pode) levar notebook.
- Exercícios durante as aulas.
- Leituras complementares e opcionais fora da sala de aula.
Requisitos básicos:
- Lógica de programação.
- Veja essa apresentação (aprox. 10 min) (slides: 13 ao 43).
- Leia esse post de blog (aprox. 5 min).
- Se quiser ganhar tempo, crie uma conta no Github.
Conteúdo:
- Primeiro dia (04/10): introdução ao
tidyverse
, o operadorpipe
, trabalhando textos comstringr
, trabalhando datas comlubridate
. - Segundo dia (05/10): transformação de dados com
dplyr
etidyr
, visualização de dados comggplot2
. - Terceiro dia (06/10): elaboração de relatórios com
knitr
ermarkdown
, modelagem preditiva (parte 1). - Quarto dia (07/10) modelagem preditiva (parte 2), case studies e feedback. R for Data Science
Não vamos falar de:
- Programação eficiente com R. Para isso, veja esse livro, que aborda temas importantíssimos como profiling, paralelização,
Rcpp
. - Estudos envolvendo “big data”. Para isso estude sobre sparklyr e tensorflow e mongodb.
1.1 Diferenças entre C/C++ e R
Na análise realizada na Seção 3 notei que boa parte dos inscritos têm background em C/C++. Em uma comparação simples, o foco do C é eficiência e transparência, enquanto o do R é análise de dados e interatividade. Isso faz com que as duas linguagens sejam bem diferentes!
Na prática, temos que
- C é compilável, R é uma linguagem script.
- R é uma linguagem funcional. Por exemplo,
(
,&
e+
são funções do R. - R é vetorizado. Observe esse sacrilégio
a <- c(1, 2, 3)
b <- c(1, 2, 3, 4, 5, 6)
a + b
## [1] 2 4 6 5 7 9
Sim, isso funciona! O que acontece aqui é o fenômeno da recliclagem de vetores do R. Caso não esteja acostumado com essas idiossincrasias do R, veja essa aula.
- Você raramente usará loops (
for
,while
) no R. Eles são ineficientes e não combinam com o estilo funcional da linguagem. Busque sempre realizar as operações com vetores, pois a maioria delas são implementadas em C e, portanto, mais eficientes.
1.2 Pacotes
Se você não está no CEC, precisará instalar alguns pacotes para acompanhar o curso. Para instalar todas as dependências, rode
install.packages('devtools')
devtools::install_github('curso-r/ragmatic')
Para visualizar todos os documentos que compõem esse livro, acesse essa página.