Olá, seja bem vindo(a) ao curso de Programação no R! O R é conhecido por muitos como um software de estatística e análise de dados, porém o R é muito mais amplo do que isto, trata-se de um ambiente completo de desenvolvimento, apresenta todos os requisitos para ser considerado uma linguagem de programação completa, suportando, inclusive, múltiplos paradigmas de programação, como o imperativo, funcional e orientado a objetos. Neste curso você irá aprender a desenvolver e implementar algoritmos utilizando os paradigmas imperativo, funcional e matricial (em que as operações são vetorizadas). Apesar do funcional e matricial serem amplamente utilizados pelos usuários do R (por motivos inteiramente justificáveis), o imperativo é um excelente caminho para aprender a programar, pois é transparente¹, e desta forma é possível saber exatamente o que está sendo feito. Além disso, com o imperativo é possível resolver praticamente qualquer problema e está disponível na ampla maioria das linguagens de programação. Por esses motivos o paradigma imperativo irá dominar boa parte do curso. Vale a pena destacar que o funcional e o matricial também são ensinados, pois apresentam características apreciáveis, esses paradigmas são reconhecidamente claros², assim os procedimentos desenvolvidos são fáceis de entender, o que facilita o ato de programar, corrigir e manter o código. Conteúdo previsto: executar operações básicas; trabalhar com objetos; executar e criar funções; usar as estruturas básicas de controle de fluxo: condicional com if-else e repetição com os loops while, repeat e for; trabalhar com as principais estruturas de dados disponíveis no R: vector, matrix, data.frame e list; repetição usando a estratégia de split-apply-combine (ou group by) e com o pacote dplyr; também serão apresentados exemplos de aplicação. Para mais detalhes consulte os cartões abaixo. Bons estudos! Prof. Gustavo Eduardo Marcatti ¹Transparente: saber exatamente o que está sendo feito. ²Claro: mais fácil de entender.
Será feita a apresentação do plano de ensino e da disciplina de forma geral. Temas relevantes serão abordados, como programação, o porquê de aprender a programar, e o porquê de utilizar o R no processo.
Neste tópico você irá aprender a executar operações matemáticas básicas, criar objetos, executar e criar suas próprias funções.
Você irá aprender sobre os operadores condicionais e operadores de comparação. O primeiro corresponde à estrutura geral das operações de condição (Ex: if...else), já o segundo trata dos sinais utilizados para construir as operações de condição (Ex: > maior que, != diferente).
Vamos continuar nas operações condicionais, desta vez a aula é sobre os operadores lógicos, os representantes principais são o ou e e, representados pelos símbolos "|" e "&", respectivamente. Você também será apresentado aos condicionais aninhados, que pode ser utilizados para substituir um operador lógico. Um condicional aninhado, é basicamente, um operador condicional dentro do outro.
Até que em fim chegamos nos loop's. Você irá aprender sobre as operações de repetição ou simplesmente loop. Será apresentado os três tipos principais tipos de loop's: while (enquanto), repeat (repita) e for (para toda sequência).
Vamos continuar nossos estudos com os loop's. Neste tópico você irá aprofundar seus conhecimentos em relação ao loop for, mais especificamente acessar um vetor no loop via indexação. Para isso você será apresentado à fantástica e robusta estrutura de dados de vetor do R.
Não podemos ter pressa, ainda há muito a ser visto em loop's. Você será apresentado a mais exemplos de utilização de um vetor em um loop e reforçar ainda mais seu conhecimento a cerca deste tema que é a base da programação. Agora é hora de aprender a criar e modificar vetores em um loop, este tema é importante para a maioria das aplicações práticas.
Tipos de dados básicos: lógicos, inteiros, numéricos, caracteres, etc. Estruturas de dados: vetor, matriz, data.frame (tibble) e lista. Classificação entre estruturas homogêneas vs heterogêneas, estruturas regulares vs irregulares. Indexação unidimensional e bidimensional. Loop em data.frame (tibble)
Você irá aprender mais sobre indexação e sobre a estrutura básica (carcaça padrão) para executar um loop em uma data.frame ou tibble. No exemplo vamos ajustar um modelo de regressão não linear e plotar os ajustes em um gráfico para cada classe de interesse.
O paradigma funcional tem se tornado cada vez mais popular devido à sua clareza, e assim os procedimentos desenvolvidos são fáceis de entender, o que facilita o ato de programar, corrigir e manter o código. Em especial no R, este paradigma também é extremamente eficiente computacionalmente. Apresentação dos aspectos básicos do paradigma de programação funcional, um comparativo entre imperativo, funcional e matricial/vetorizado. Também são apresentas as funções para split-apply-combine, map-reduce e group-by.
Programação funcional com pacote dplyr para organizar, arrumar, corrigir e limpar bases de dados brutas. Além disso, pode ser utilizado para gerar resumos, processar dados e fazer análises.
Exemplo 1: Gerador de amostras distribuídas de forma sistemática, o procedimento adiciona restrição de bordas e garante o lançamento da quantidade especificada de amostras. Exemplo 2: Implementação do algoritmo dos k-vizinhos mais próximos (K-NN, do inglês K-Nearest Neighbors). O K-NN pertence ao grupo de algoritmos de aprendizagem de máquina (machine learning).