read_more
Campus Virtual Fiocruz

Introdução à Análise de Dados para pesquisa no SUS

Módulo 1 | Aula 2
Introdução à Linguagem de Programação

Tópico 3

Funções no R

Além de variáveis, no R também usamos funções, que são blocos de código prontos para realizar tarefas específicas.

Uma função tem um nome e pode receber argumentos (informações que ela usa para fazer seu trabalho). A sintaxe básica é:

Sintaxe
											
												# Estrutura geral para chamar funções em R

												nome_funcao(argumento1, argumento2, ... argumentoN ) 

											
										

O R já vem com várias funções embutidas, como:

  • sqrt() - Calcula a raiz quadrada.
  • is.numeric() - Verifica se algo é numérico.
  • factor() - Cria fatores (categorias).
  • lm() - Ajusta modelos lineares.
  • sum() - Calcula a soma de números.

Vamos testar no R a função sum, e primeiro vamos rodar o comando.

Na Prática!

Comando:

Saída:

Use ? antes de uma função, por exemplo, digite o comando ?sum isso vai mostrar a documentação dessa função.

Pacotes

Além das funções embutidas no R, muitas outras ficam armazenadas em pacotes. No R, um pacote é um conjunto de funções desenvolvidas para tarefas específicas. O R possui milhares de pacotes prontos para serem usados, criados pela própria comuni-dade de usuários. Antes de iniciar, é sempre bom verificar se já existe um pacote que faça o que você precisa.

Existem diferentes maneiras de instalar pacotes. Aqui estão as principais fontes:

Esta é a fonte oficial dos pacotes em R.

Comando para instalar: install.packages("nome-do-pacote")

Para pacotes que estão disponíveis no GitHub, usamos a função install_github() da biblioteca devtools.

Comando para instalar um pacote do GitHub: devtools::install_github("nome-do-usuario/nome-do-repositorio")

Nota: Esse comando só funciona para pacotes que estejam no github; você precisa ter o pacote devtools instalado para rodar esse comando.

Se você baixou o arquivo do pacote no seu computador, pode instalá-lo diretamente a partir do arquivo.

Comando para instalar a partir de um arquivo: install.packages("C:/caminho/nome-do-pacote.zip", repos = NULL).

A aba packages do Rstudio permite instalar pacotes usando-se o botão install e digitando o nome ou a atualização (update) marcando os pacotes que deseja atualizar.

Para ver quais funções existem em um pacote você pode utilizar a função help(nome_do_pacote) ou escrever o comando nome_do_pacote:: e apertar a tecla <tab> no Rstudio.

Agora, antes de prosseguirmos vamos realizar a instalação e carregamento de alguns pacotes que serão muito úteis nas próximas atividades. Para instalar os pacotes execute os comandos abaixo.

Na Prática!

Comando:

Leitura
Complementar

Instalar pacotes no R pode ser um processo lento por diversos motivos, como o tamanho do pacote, dependências adicionais que precisam ser instaladas, a velocidade da conexão com a internet e eventuais incompatibilidades entre versões do R, do RStudio ou do próprio sistema operacional. Em alguns casos, o processo pode parecer travado (a instalação permanece “rodando” por vários minutos) mas isso é normal, especialmente para pacotes maiores ou que exigem compilação.

Também é comum que ocorram erros durante a instalação, por exemplo, devido à falta de permissões, conflitos entre pacotes, atualizações pendentes do R ou problemas momentâneos nos servidores do CRAN. Essas situações são parte da rotina de quem usa o R, e existem muitos recursos úteis para ajudar a solucioná-las.

No material complementar disponibilizamos um guia detalhado sobre instalação de pacotes. Além disso, recomendamos fortemente recorrer a fóruns como Stack Overflow, RStudio Community e repositórios como o GitHub, que costumam oferecer respostas claras e atualizadas para quase todos os tipos de problema.

Atenção

Para utilizar as funções de um pacote no R, é necessário carregá-lo em cada sessão antes de executar qualquer código que dependa dele. A sintaxe é:

Sintaxe
														
															# Comando para carregar um pacote instalado

															library("nome do pacote")
														
													

Na Prática!

Comando:

Se você tentar carregar um pacote que ainda não está instalado, o R exibirá uma mensagem de erro, mas não se preocupe! Basta instalar o pacote e tentar novamente.

Em R, diferentes pacotes podem ter funções com o mesmo nome. Quando isso acontece, o R sempre dará prioridade à função do último pacote carregado.

Se você tiver dois pacotes com uma função chamada mutate(), por exemplo, e simplesmente usar mutate(), o R vai rodar a versão da função do pacote que foi carregado por último.

Para garantir que o R use a função de um pacote específico, você pode usar a sintaxe:

Sintaxe
										
											# Usando o operador :: para especificar o pacote

											nome_do_pacote::nome_da_função() # Assim, você evita qualquer confusão. 

											mutate() # usa o mutate do último pacote carregado. 

											dplyr::mutate() # usa o mutate do pacote dplyr independentemente da ordem de carregamento. 

										
									

As mensagens de erro no R podem parecer confusas no início, mas, na verdade, elas são suas aliadas para encontrar e corrigir problemas no código. Cada mensagem de erro traz informações importantes que ajudam a entender o que deu errado. A seguir estão algumas dicas para interpretar e resolver erros de forma mais eficiente.

pan_tool_alt CliqueToque e arraste os cards para ver as dicas.

Leia a mensagem com atenção

A mensagem de erro normalmente informa qual foi o tipo de problema (ex.: variável não encontrada, erro de sintaxe etc.) e em qual linha o erro aconteceu.

Pesquise a mensagem de erro

Muitos erros comuns já têm soluções explicadas em fóruns ou na documentação do R. Uma rápida pesquisa pode fornecer dicas valiosas sobre como resolver o problema.

Teste em partes menores

Se o erro não for claro, tente isolar partes do código e rodar pedaços menores para identificar exatamente onde o problema está ocorrendo.

Lembre-se!

Mensagens de erro são úteis e fazem parte do processo de programação!

A utilização da sintaxe dos pacotes do Tidyverse torna o processo de programação mais simples, fluída e eficiente.

O Tidyverse é um conjunto de pacotes criados para facilitar o trabalho com ciência de dados. Ele inclui várias ferramentas que seguem uma mesma lógica de uso, facilitando a aprendizagem e a aplicação.

O Tidyverse trouxe uma abordagem mais intuitiva, consistente e funcional ao R, quando comparado ao R base. Essa maneira de programar se tornou muito popular na comunidade, sendo conhecida como o tidy way (modo organizado).

O tidy way facilita a leitura e o entendimento do código, promovendo um estilo de programação mais claro e acessível para tarefas de ciência de dados (figura anterior). Além disso, ele permite que diferentes pacotes trabalhem de forma integrada, compartilhando a mesma filosofia.

Tidyverse engloba uma série de pacotes que seguem a mesma filosofia de organização e manipulação de dados, como dplyr, ggplot2, tidyr, readr, stringr e lubridate. Você pode carregar todos esses pacotes de uma só vez usando library(tidyverse), ou pode carregar apenas um pacote específico, quando necessário, usando library(nome_do_pacote).

Você pode conferir o manifesto do Tidyverse, que descreve seus princípios e conceitos neste site.

Importação de dados

No R, existem diversas bibliotecas para ler diferentes tipos de formatos, como arquivos CSV, arquivos do Excel, além de acessar bancos de dados como MySQL, PostgreSQL, entre muitos outros formatos de arquivos.

Vamos aprender a ler nesta aula três formatos de arquivos:

  • CSV, arquivos separados por vírgulas.
  • Arquivos de planilhas Excel, como xlsx.
  • Parquet, arquivo binário projetado para armazenamento e recuperação de dados eficientes.

Acesse o site oficial do Parquet para download.

Para saber mais sobre a sua utilização, acesse aqui.

Você já instalou e carregou os pacotes readr e readxl (que já fazem parte do Tidyverse). Além deles, você também instalou e carregou o pacote arrow, que permite importar arquivos no formato Parquet.

Agora, é importante selecionar a pasta onde você descompactou os arquivos. Lembre-se de alterar o caminho a seguir para o diretório correto no seu computador:

Na Prática!

Comando:

Se você estiver utilizando um computador com Windows, ao copiar o caminho da pasta onde seus arquivos estão verá que as barras estarão no formato \ . Para que o R consiga interpretar o caminho corretamente, é necessário inverter as barras para o formato /.

Na Prática!

Comando:

Saída:

Após executar os três comandos acima, você verá que a aba Environment no RStudio mostrará três dataframes carregados. No entanto, como os dados são os mesmos, a partir de agora trabalharemos com apenas um deles. Essa etapa foi apenas para demonstrar como ler arquivos em diferentes formatos.

Como não vamos mais utilizar dois desses Dataframes, já que são iguais entre si, vamos removê-los da memória do RStudio. Isso é importante para liberar espaço e manter o ambiente de trabalho organizado.

Para apagar um Dataframes no R, usamos o comando rm(nome_do_dataframe). No nosso caso, o código ficará assim:

Na Prática!

Comando:

No nosso repositório do R, você encontrará alguns conjuntos de dados já disponíveis, que vão ajudar na realização das atividades práticas.

Os dados que carregamos no R são referentes ao Sistema de Informação sobre Mortalidade (SIM) do ano de 2023, especificamente para a cidade de Salvador. Eles foram filtrados pelo código do município de residência e captados diretamente do site do DATASUS.

Esses dados foram preparados especialmente para este curso e contêm 7 variáveis e 261 observações. Para ajudar no entendimento de cada variável presente no SIM, você pode consultar o dicionário de dados que está incluído no arquivo zipado enviado anteriormente.

Manipulação de dados

Agora, vamos fazer algumas alterações no nosso Dataframe. Utilizaremos conceitos da aula de lógica de programação, como SE/SE NÃO e REPITA ATÉ, além de introduzir alguns novos conceitos importantes usando a linguagem R.

Para verificar a estrutura inicial dos nossos dados, podemos usar uma função do pacote dplyr (do Tidyverse) chamada glimpse. Essa função exibe todas as variáveis do Dataframe, mostrando o nome, o tipo de cada variável e alguns exemplos dos valores contidos em cada uma delas.

Isso nos permite ter uma visão geral rápida dos dados, facilitando a compreensão do seu conteúdo. Veja um exemplo de como o glimpse funciona:

Na Prática!

Comando:

Saída:

Ao rodar esse comando, você verá algo como:

  • Nome das variáveis.
  • Tipo (numérico, texto, fator etc.).
  • Alguns exemplos de valores em cada variável.

Teste também os comandos abaixo e veja o que acontece:

Na Prática!

Comando:

Em seguida, vamos trabalhar com algumas variáveis, começando pela variável SEXO.

Para verificar a frequência de valores na variável SEXO, utilizaremos o comando table do R base. Esse comando conta quantas vezes cada valor aparece, permitindo que se entenda melhor o conteúdo dessa variável.

Na Prática!

Comando:

Saída:

Nesse exemplo, o parâmetro useNA = “always” inclui os valores NA (ausentes) na contagem, o que é útil para identificar valores que estão faltando.

Para entender mais detalhes sobre o comando table, você pode executar ?table no console do R ou buscar a documentação na internet.

Você pode chegar ao mesmo resultado usando o Tidyverse, que oferece uma sintaxe mais intuitiva. Utilizando a função count do pacote dplyr, (do Tidyverse) podemos contar as ocorrências na variável SEXO de maneira simples.

Antes de mostrarmos o exemplo, vamos introduzir o operador pipe (%>%), que permite encadear operações no R. Esse operador faz parte da biblioteca magrittr e é amplamente utilizado no Tidyverse. Ele serve para passar o resultado de uma função diretamente para a próxima, o que torna o código mais legível.

Para usar o pipe, basta digitar <Ctrl> + <Shift> + M (Windows/Linux) ou <Command> + <Shift> + M (macOS) no RStudio e o operador será inserido automaticamente.

Na Prática!

Comando:

Saída:

Nesse código utilizamos o pipe (%>%) para encadear as operações e a função count para contar as ocorrências na variável SEXO. O parâmetro sort = TRUE organiza os valores em ordem decrescente de frequência.

Assim, o Tidyverse nos permite realizar a mesma tarefa de forma mais intuitiva e fácil de ler. Após executar o comando no console, a saída será a seguinte:

Função Mutate

No dplyr, para criar novas variáveis ou alterar variáveis existentes utilizamos a função mutate. A sintaxe básica do mutate é a seguinte:

Sintaxe
											
												# Sintaxe básica do mutate para criar novas variáveis

												data_frame <- data_frame %>%
												   mutate(nova_variavel  = expressão)
											
										

Em que:

  • nova_variavel: nome da variável que será criada.
  • expressão: pode ser uma operação matemática, uma combinação de outras colunas, ou qualquer expressão válida.
Atenção

Caso você use o mesmo nome de uma variável que já existe no seu data frame, as alterações serão aplicadas diretamente nela. Isso significa que a variável original será sobrescrita pela nova versão