Análise de Dados Financeiros e Econômicos com o R
EA-UFRGS
20/08/2026
A tela do RStudio
<- ou = define objetos na sessão do RDigite e execute os seguintes comandos em um novo script do R:
Atalhos para rodar código
<- (com espaços);
|>;
Digite os seguintes comandos em um novo script do R:
?função ou help(função) abre a documentação oficial de uma função (ex.: ?readr::read_csv)??termo busca um termo em todos os pacotes instaladosargs(função) mostra os argumentos esperados e str(objeto) mostra a estrutura de um objetoView(objeto) abre um objeto em uma aba interativa do RStudioNo R, tudo é um objeto, e cada tipo de objeto tem suas propriedades.
# numeric
x <- 1 # unique value
x <- 1:10 # sequence
x <- c(1, 4.1, 6.5, 7) # vector
x <- c(1, 1:10, 99) # combined vector
x <- runif(100) # 100 random numbers
x <- seq(1, 10, by = 2)
# Date
my_date <- as.Date("2022-01-05")
today <- Sys.Date()
# character
y <- 'text' # simples text
y <- c('my text 1', 'my.text2') # vector of texts
# logical
l <- TRUE
l <- FALSE
l <- c(TRUE, FALSE)
# dataframe (tabela)
df <- data.frame(x = 1:10,
z = paste0('linha ', 1:10))decimal: O decimal no R é definido pelo ponto (.), tal como em 2.5 e não vírgula, como em 2,5.
evite caracteres latinos ao máximo. Nos textos (objeto de caracteres), é possível utilizá-los desde que a codificação do objeto esteja correta (UTF-8 ou Latin1).
formato das datas: as datas no R são formatadas de acordo com o padrão ISO 8601, seguindo o padrão YYYY-MM-DD
Pacotes são módulos gratuitos, desenvolvidos por outros usuários, e podem ser instalados e usados livremente em seu computador.
O R possui hoje em torno de 24708 pacotes à disposição dos usuários
O repositório oficial de pacotes é o CRAN (The Comprehensive R Archive Network), mas alguns pacotes estão disponíveis no Github
Cada pacote é nada mais que um conjunto de arquivos, copiado para sua pasta local e compilado localmente conforme necessidade. No meu caso (comando .libPaths()), a pasta é: /home/msperlin/R/x86_64-pc-linux-gnu-library/4.6
O task views é uma ótima fonte para estudar potenciais pacotes em uma determinada área de conhecimento
DICA: é extremamente provável que o método que pretende usar em seu artigo/dissertação/tese esteja disponível em um pacote
install.packages()remotes::install_github() ou pak::pkg_install():pakPacote
paké uma versão moderna deutils::install.packages()para a instalação de pacotes do R, que otimiza a instalação de pacotes e suas dependências.
Baixa e compila múltiplos pacotes simultaneamente
Resolução inteligente de dependências
Sintaxe unificada para múltiplas fontes: Instala de diversas origens usando o mesmo comando (pak::pkg_install()): CRAN/Github/Bioconductor
Executa o processo de build em uma sessão de R separada, evitando conflitos com pacotes já carregados na sua sessão atual.
Dependências de sistema automáticas: No Linux, identifica e instala (ou instrui como instalar) as bibliotecas C/C++ necessárias no sistema operacional.
Feedback visual claro: Interface mais limpa, indicando o progresso, tempo restante e o plano de resolução antes de aplicar as mudanças.
No R, é possível criar ambientes isolados, com pacotes e versões específicas, para cada projeto. Isso evita conflitos de versões de pacotes entre projetos diferentes.
Pacote renv permite criar ambientes isolados para cada projeto, com pacotes e versões específicas.
Vantagens: conflitos de pacotes entre projetos diferentes são evitados, e é possível compartilhar o ambiente com outros usuários.
Desvantagens: necessita da reinstalação dos pacotes a cada projeto.
yvec e zvec são iguais? Por que?
Pacote fortunes permite que o usuário conte piadas com o R. Instale o mesmo e execute a sua principal função fortune(). Qual é a piada contada?
Pacote afedR3 foi construído baseado na versão em inglês do livro da disciplina. Instale o mesmo com o comando remotes::install_github("msperlin/afedR3") (ou pak::pkg_install("msperlin/afedR3")). Após isso, execute o código abaixo e descreva qual a finalidade do mesmo.
Crie o vetor v <- c(10, 20, "30"). Verifique a sua classe com class(v). O que acontece ao tentar executar v + 5? Como converter o vetor para numérico e realizar a operação?
Crie um projeto com ambiente de R isolado e refaça o exercício 3. O que mudou?
setwd()/getwd()rm() limpa a memóriagc()fs::dir_ls(PATH)fs::path_temp(). A minha é “/tmp/Rtmp9GmbQB”fs.download.file baixa arquivos da internet:jsonlite::fromJSON()|> encadeia operações: a saída da esquerda é passada como primeiro argumento da função à direita| Posicao | cnpj8 | Segmento | Modalidade | InstituicaoFinanceira | TaxaJurosAoMes | TaxaJurosAoAno |
|---|---|---|---|---|---|---|
| 1 | 04452473 | Pessoa Física | Aquisição de veículos - Prefixado | BMW SA CFI | 1,18 | 15,11 |
| 2 | 02992446 | Pessoa Física | Aquisição de veículos - Prefixado | BANCO CNH INDUSTRIAL CAPITAL S.A | 1,26 | 16,27 |
| 3 | 28517628 | Pessoa Física | Aquisição de veículos - Prefixado | BCO PACCAR S.A. | 1,29 | 16,59 |
| 4 | 09313766 | Pessoa Física | Aquisição de veículos - Prefixado | CARUANA SCFI | 1,29 | 16,68 |
| 5 | 58017179 | Pessoa Física | Aquisição de veículos - Prefixado | BCO VOLVO BRASIL S.A. | 1,34 | 17,30 |
| 6 | 11417016 | Pessoa Física | Aquisição de veículos - Prefixado | SCANIA BCO S.A. | 1,36 | 17,55 |
| 7 | 59109165 | Pessoa Física | Aquisição de veículos - Prefixado | BCO VOLKSWAGEN S.A | 1,36 | 17,64 |
| 8 | 59274605 | Pessoa Física | Aquisição de veículos - Prefixado | BCO GM S.A. | 1,54 | 20,14 |
| 9 | 60814191 | Pessoa Física | Aquisição de veículos - Prefixado | BCO MERCEDES-BENZ S.A. | 1,57 | 20,61 |
| 10 | 33603457 | Pessoa Física | Aquisição de veículos - Prefixado | BCO RODOBENS S.A. | 1,60 | 20,99 |
| 11 | 62307848 | Pessoa Física | Aquisição de veículos - Prefixado | BCO RCI BRASIL S.A. | 1,61 | 21,11 |
| 12 | 04866275 | Pessoa Física | Aquisição de veículos - Prefixado | BANCO INBURSA | 1,62 | 21,33 |
| 13 | 03502961 | Pessoa Física | Aquisição de veículos - Prefixado | STELLANTIS FINANCIAMENTOS CFI | 1,68 | 22,17 |
| 14 | 30172491 | Pessoa Física | Aquisição de veículos - Prefixado | BANCO HYUNDAI CAPITAL BRASIL | 1,70 | 22,37 |
| 15 | 60746948 | Pessoa Física | Aquisição de veículos - Prefixado | BCO BRADESCO S.A. | 1,71 | 22,61 |
| 16 | 33136888 | Pessoa Física | Aquisição de veículos - Prefixado | BRB - CFI S/A | 1,76 | 23,24 |
| 17 | 03215790 | Pessoa Física | Aquisição de veículos - Prefixado | BCO TOYOTA DO BRASIL S.A. | 1,80 | 23,80 |
| 18 | 22639377 | Pessoa Física | Aquisição de veículos - Prefixado | SINOSSERRA S/A - SCFI | 1,80 | 23,90 |
| 19 | 28127603 | Pessoa Física | Aquisição de veículos - Prefixado | BCO BANESTES S.A. | 1,83 | 24,29 |
| 20 | 17167412 | Pessoa Física | Aquisição de veículos - Prefixado | FINANCEIRA ALFA S.A. - SCFI | 1,85 | 24,60 |
| 21 | 45437547 | Pessoa Física | Aquisição de veículos - Prefixado | SAFRA SCFI S.A. | 1,95 | 26,11 |
| 22 | 00000000 | Pessoa Física | Aquisição de veículos - Prefixado | BCO DO BRASIL S.A. | 1,97 | 26,33 |
| 23 | 60872504 | Pessoa Física | Aquisição de veículos - Prefixado | ITAÚ UNIBANCO HOLDING S.A. | 1,99 | 26,60 |
| 24 | 01852137 | Pessoa Física | Aquisição de veículos - Prefixado | BCO BRASILEIRO DE CRÉDITO S.A. | 1,99 | 26,62 |
| 25 | 31872495 | Pessoa Física | Aquisição de veículos - Prefixado | BCO C6 S.A. | 2,00 | 26,86 |
| 26 | 07707650 | Pessoa Física | Aquisição de veículos - Prefixado | SANTANDER SCFI S.A. | 2,06 | 27,64 |
| 27 | 00360305 | Pessoa Física | Aquisição de veículos - Prefixado | CAIXA ECONOMICA FEDERAL | 2,08 | 28,00 |
| 28 | 07207996 | Pessoa Física | Aquisição de veículos - Prefixado | BCO BRADESCO FINANC. S.A. | 2,11 | 28,41 |
| 29 | 04862600 | Pessoa Física | Aquisição de veículos - Prefixado | PORTOSEG S.A. CFI | 2,11 | 28,48 |
| 30 | 59588111 | Pessoa Física | Aquisição de veículos - Prefixado | BCO VOTORANTIM S.A. | 2,18 | 29,59 |
| 31 | 90400888 | Pessoa Física | Aquisição de veículos - Prefixado | BCO SANTANDER (BRASIL) S.A. | 2,31 | 31,47 |
| 32 | 03634220 | Pessoa Física | Aquisição de veículos - Prefixado | BCO HONDA S.A. | 2,45 | 33,76 |
| 33 | 60701190 | Pessoa Física | Aquisição de veículos - Prefixado | ITAÚ UNIBANCO S.A. | 2,46 | 33,83 |
| 34 | 10371492 | Pessoa Física | Aquisição de veículos - Prefixado | BCO YAMAHA MOTOR S.A. | 2,59 | 35,98 |
| 35 | 92874270 | Pessoa Física | Aquisição de veículos - Prefixado | BCO DIGIMAIS S.A. | 2,66 | 36,95 |
| 36 | 34991938 | Pessoa Física | Aquisição de veículos - Prefixado | SIMPALA S.A. CFI | 2,73 | 38,10 |
| 37 | 05676026 | Pessoa Física | Aquisição de veículos - Prefixado | CREDIARE CFI S.A. | 2,91 | 41,02 |
| 38 | 00411939 | Pessoa Física | Aquisição de veículos - Prefixado | FINAMAX S.A. CFI | 3,03 | 43,08 |
| 39 | 62232889 | Pessoa Física | Aquisição de veículos - Prefixado | BCO DAYCOVAL S.A | 3,12 | 44,52 |
| 40 | 59285411 | Pessoa Física | Aquisição de veículos - Prefixado | BANCO PAN | 3,18 | 45,62 |
| 41 | 92228410 | Pessoa Física | Aquisição de veículos - Prefixado | OMNI SA CFI | 3,43 | 49,85 |
| 42 | 05192316 | Pessoa Física | Aquisição de veículos - Prefixado | VIA CERTA FINANCIADORA S.A. - CFI | 3,77 | 55,94 |
| 43 | 05503849 | Pessoa Física | Aquisição de veículos - Prefixado | CLOUDWALK FINANCEIRA S.A. CFI | 3,95 | 59,11 |
Utilize o R para baixar o arquivo compactado com o material do livro, disponível neste link. Salve o mesmo como um arquivo na pasta temporária da sessão (veja função fs::file_temp(ext = ".zip")).
Utilize a função unzip para descompactar o arquivo baixado na questão anterior em uma pasta temporária (fs::path_temp()) e, após a operação, utilize a função fs::file_delete() para remover o arquivo zipado do computador. Quantos arquivos estão disponíveis no arquivo descompactado?
Toda vez que o usuário instala um pacote do R, os arquivos desse são armazenados localmente em uma pasta específica do computador. Utilizando os comandos .libPaths()[1] e fs::dir_ls(), liste todos os diretórios desta pasta. Quantos pacotes estão instalados nesta biblioteca?
No mesmo assunto do exercício anterior, liste todos os arquivos em todas as subpastas do diretório contendo os arquivos dos pacotes. Em média, quantos arquivos são necessários para cada pacote?
Instale o pacote GetTDData no seu computador. Leia o manual do pacote (use ?GetTDData::get_yield_curve) e utilize a função GetTDData::get_yield_curve() para baixar a curva de juros atual no sistema financeiro Brasileiro.
Utilizando o pacote pak (ou remotes), instale a versão de desenvolvimento do pacote ggplot2 do repositório oficial do Github (tidyverse/ggplot2). Carregue o pacote usando library(ggplot2) e crie um gráfico de dispersão com dados aleatórios (x = 1:10, y = rnorm(10)).
DESAFIO - Utilizando sua capacidade de programação, verifique na sua pasta de usuário (fs::path_home()) qual subdiretório de primeiro nível possui o maior número total de arquivos (recursivamente). Apresente na tela as cinco pastas com maior número de arquivos.
ADFER - UFRGS