This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com. Este trabalho foi elaborado em ambiente de kernel Linux, distribuição Arch Linux. IDE utilizada foi a RStudio.
O objetivo é replicar, atualizando, tabela vista em sala de aula.
No site de dados do Banco Mundial (https://data.worldbank.org/) vamos coletar dados de PIB per capita de alguns países (por exemplo, Brasil, Argentina, México, Uruguai, Colômbia):
Extraia o arquivo zipado para sua área ou diretório de trabalho. Você vai ver uma tabela com mais de duzentos países e áreas ou regiões. Dados de PIB per capita, de 1960 até 2022. Note que para alguns países não existem dados para todos os anos da série.
Com base na planilha extraída, monte uma outra com os países que serão estudados, no caso deste exemplo, Brasil, Argentina, México, Uruguai e Colômbia.
O nome que eu dei para essa nova planilha é pibpc.csv. O tratamento dos dados consiste em montar uma tabela apenas com os nomes dos países nas colunas e seus respctivos PIB per capitas (ou seja, é necessário apagar as outras células e transpor a tabela). Para facilitar o tratamento dos dados no R, o arquivo pibpc.csv será composto apenas pelos nomes dos países e seus PIB per capitas.
Primeiro devemos definir nosso diretório de trabalho. Sabemos qual o diretório de trabalho do R com o seguinte comando:
getwd()
## [1] "/home/dinilson"
O R está considerando como seu diretório de trabalho a pasta “dinilson”. Então é nessa pasta que eu devo salvar o arquivo de trabalho (pibpc.csv). É possível, também, determinar outro diretório de trabalho com o comando setwd().
Vamos carregar os pacotes que usaremos neste estudo. Os pacotes devem ser previamente instalados com o comando install.packages(“nome do pacote”).
library(lubridate)
library(scales)
library(ggplot2)
library(ggthemes)
library(data.table)
library(dplyr)
O pacote lubridate será usado para criarmos as datas de nossa série temporal, que, no nosso caso, começa em 1960 e termina em 2022. O pacote scales serve para espaçar datas no gráfico que faremos. O ggplot2 é uma poderosa suíte para fazer gráficos. O pacote ggthemes acrescenta fundos aos gráficos. Já o pacote dplyr será usado para manipular o dataframe que vamos criar.
Agora podemos ler os dados, ou seja, carregá-los em nosso espaço de trabalho. O comando que usaremos nessa leitura é o read.csv(). É um comando nativo no R Base, ou seja, não foi obtido por algum pacote extra. Atenção: o comando read.csv() lê arquivos em CSV no padrão de números norte-americano, onde a casa decimal é separada pelo ponto. Se o arquivo em CSV estiver no formato brasileiro, onde a casa decimal é separada por vírgula, então o comando de leitura no R base seria read.csv2(). No pacote tidyverse, uma poderosa súite para se trabalhar com dados, há ferramentas de leituras de arquivos em CSV mais sofisticadas.
pibpc<-read.csv('pibpc.csv', header = T)
O argumento header = T significa que queremos que o cabeçalho da tabela seja lido. No quadrante Environment do RStudio você verá que o arquivo foi carregado, com 63 observações (de 1960 até 2022) e 5 variáveis (os cinco países de nossa amostra). Clicando no ícone da tabela, no Environment, pode visualizar a tabela no primeiro quadrante.
Vamos acrescentar à tabela (ou melhor, dataframe) uma coluna de datas. Tal coluna será interpretada pelo R como uma coluna de datas e não apenas de números, 1960, 1961 etc.
anos<-seq.Date(from = as_date("1960-01-01"),
to = as_date("2022-01-01"),
"year")
Note que, em que pese escrevermos mês e dia na função, os dados são anuais.
Agora vamos acrescentar ao nosso dataframe pibpc essa coluna com os anos:
pibpcdf = data.frame(anos, pibpc)
Mais uma vez, visualize o novo data frame (pibpcdf) no quadrante Environment.
Podemos confirmar que pibpcdf é um data frame por meio da função class(objeto):
class(pibpcdf)
## [1] "data.frame"
Vamos, agora, usar o fantástico pacote ggplot2 para montar o gráfico que apresenta o desempenho dos países durante o intervalo de tempo considerado. É importante lembrar que essa comparação só faz sentido porque os valores estão corrigidos para dólares de 2015.
Vamos montar os gráficos em duas etapas. Uma primeira simples e outra com mais detalhes e informações. O que diferencia uma da outra é que na segunda mais camadas de informações são acrescentadas.
ggplot(data = pibpcdf, aes(x = anos)) +
geom_line(aes(y = ARG, colour = "Argentina"), linewidth = 0.9)+
geom_line(aes(y= BRA, colour="Brasil"), linewidth = 0.9) +
geom_line(aes(y= COL, colour="Colômbia"), linewidth = 0.9) +
geom_line(aes(y= MEX, colour="México"), linewidth = 0.9) +
geom_line(aes(y= URU, colour="Uruguai"), linewidth = 0.9) +
xlab('Anos')+
ylab('PIB per capita')
Os argumentos usados no gráfico acima são os seguintes: em data nomeamos o dataframe que utilizamos. O desenho ou estética do gráfico é especificado com a função aes, no caso estamos dizendo que o eixo horizontal (x) é o dos anos. Em seguida, passamos a acrescentar ao gráfico as linhas dos países. Note que as cores das linhas são assumidas pelo programa. Mas podemos nomear cada uma delas, como fazemo através do argumento colour. Determinamos a grossura de cada linha com o argumento linewidth. Finalmente, nomeamos os eixos com os argumentos xlab e ylab.
Vamos montar um gráfico mais elaborado. O comando é o seguinte:
ggplot(data = pibpcdf, aes(x = anos)) + theme_economist()+
geom_line(aes(y = ARG, colour = "Argentina"), linewidth = 0.9)+
geom_line(aes(y= BRA, colour="Brasil"), linewidth = 0.9) +
geom_line(aes(y= COL, colour="Colômbia"), linewidth = 0.9) +
geom_line(aes(y= MEX, colour="México"), linewidth = 0.9) +
geom_line(aes(y= URU, colour="Uruguai"), linewidth = 0.9) +
xlab('Anos')+
ylab('PIB per capita')+
theme(axis.text.x = element_text(face="bold", color="black", size=9, angle=45, hjust = 1)) +
theme(axis.text.y = element_text(face="bold", color="Black", size=9, angle=0)) +
theme( axis.line = element_line(colour = "black", size = 0.5, linetype = "solid")) +
labs(title='PIB per capita de Países',
subtitle='1960-2022', caption='Fonte: Turma de Fundamentos de Macro 2024', color = "")
São muitos outros argumentos. Destaco o labs. Com ele especificamos o título do gráfico e sua nota de rodapé. Os demais podem ser esclarecidos numa boa pesquisa feita no Google.
Vamos agora tentar responder à seguinte pergunta: Nesses 63 anos, que país apresentou a maior evolução no seu PIB per capita?
Para responder à pergunta vamos transpor nossa matriz original (aquela sem as datas, pibpc) e acrescentar, depois, uma coluna com o crescimento entre os anos 1963 e 2022. A nova coluna será acrecida por meio do operador pipe, %>%. Esse operador está no pacote dplyr, usando muito em data science.
Primeio a transposição do data frame pibpc:
pibpcT <- as.data.frame(t(pibpc))
Agora vamos criar a coluna com o crescimento entre os anos 1960 e 2022:
pibpc_df <- pibpcT %>%
mutate(cresc = V1/V63 )
pibpc_df
## V1 V2 V3 V4 V5 V6 V7 V8
## ARG 7410.305 7687.517 7498.840 6986.565 7572.231 8241.529 8059.450 8187.373
## BRA 2578.429 2717.002 2811.627 2746.514 2758.863 2746.258 2850.901 2892.684
## COL 1951.043 1987.653 2031.346 2034.759 2095.847 2107.610 2154.831 2182.153
## MEX 4197.982 4269.984 4325.436 4524.189 4897.244 5072.631 5206.154 5332.748
## URU 6636.646 6716.762 6531.215 6466.285 6550.572 6549.796 6684.068 6381.143
## V9 V10 V11 V12 V13 V14 V15 V16
## ARG 8450.037 9126.186 9257.896 9628.038 9630.010 9739.416 10105.050 9935.939
## BRA 3095.222 3304.856 3558.852 3866.385 4224.196 4699.440 4962.922 5097.708
## COL 2250.141 2326.605 2410.399 2494.398 2625.277 2739.440 2833.390 2836.551
## MEX 5648.053 5655.998 5835.131 5867.035 6154.647 6435.961 6602.411 6773.990
## URU 6448.401 6778.496 6896.111 6841.418 6713.822 6694.947 6848.322 7219.411
## V17 V18 V19 V20 V21 V22 V23 V24
## ARG 9581.841 10083.815 9476.063 10278.925 10270.956 9585.207 9366.170 9622.347
## BRA 5489.980 5626.717 5768.426 6014.867 6415.638 6001.645 5914.565 5613.612
## COL 2907.408 2962.538 3141.531 3236.008 3291.472 3289.777 3245.942 3222.121
## MEX 6867.222 6893.667 7293.084 7776.166 8240.716 8831.274 8649.123 8086.262
## URU 7453.835 7514.929 7874.088 8319.873 8767.217 8866.945 7966.519 7114.329
## V25 V26 V27 V28 V29 V30 V31 V32
## ARG 9624.405 8987.934 9397.884 9507.340 9262.964 8473.027 8144.494 8762.661
## BRA 5788.087 6110.358 6433.498 6528.623 6399.484 6479.069 6086.078 6043.433
## COL 3255.018 3283.229 3400.941 3508.248 3574.479 3619.351 3695.806 3693.731
## MEX 8209.844 8212.922 7750.171 7774.520 7735.722 7882.123 8145.016 8303.121
## URU 6998.041 7063.190 7642.515 8205.951 8276.141 8313.132 8286.698 8529.701
## V33 V34 V35 V36 V37 V38 V39
## ARG 9327.859 9957.257 10397.379 9969.332 10388.539 11097.382 11391.945
## BRA 5911.687 6103.377 6358.679 6524.519 6567.352 6689.199 6613.983
## COL 3767.677 3893.075 4039.994 4170.458 4179.226 4246.157 4196.920
## MEX 8433.337 8509.396 8715.734 8049.743 8399.343 8849.732 9240.007
## URU 9152.652 9342.521 9965.604 9765.153 10251.271 11064.299 11501.851
## V40 V41 V42 V43 V44 V45 V46
## ARG 10880.206 10672.722 10090.653 8895.320 9581.970 10341.643 11141.311
## BRA 6551.227 6745.858 6749.882 6868.696 6865.173 7178.347 7325.904
## COL 3953.730 4003.985 4007.528 4045.307 4142.008 4301.035 4447.567
## MEX 9340.080 9655.602 9464.995 9300.117 9271.440 9461.924 9524.742
## URU 11270.676 11008.638 10557.505 9724.988 9792.163 10271.012 11024.388
## V47 V48 V49 V50 V51 V52 V53
## ARG 11913.959 12857.093 13246.635 12336.862 13551.339 14200.270 13895.634
## BRA 7534.543 7909.825 8231.100 8142.761 8673.898 8935.277 9025.314
## COL 4685.055 4939.118 5042.061 5042.145 5209.732 5511.100 5667.499
## MEX 9847.513 9920.688 9888.139 9151.770 9480.135 9667.627 9872.293
## URU 11460.283 12186.596 13031.858 13552.245 14572.763 15284.063 15780.264
## V54 V55 V56 V57 V58 V59 V60
## ARG 14071.509 13567.948 13789.060 13360.212 13595.037 13105.397 12716.224
## BRA 9216.132 9183.460 8783.215 8426.843 8470.941 8553.866 8592.211
## COL 5899.768 6107.083 6228.652 6291.080 6280.891 6320.991 6404.109
## MEX 9826.132 9947.886 10098.173 10161.356 10240.310 10343.353 10226.231
## URU 16463.016 16943.691 16950.753 17181.907 17437.855 17440.382 17563.208
## V61 V62 V63 cresc
## ARG 11346.652 12444.318 12940.738 0.5726339
## BRA 8255.568 8621.732 8831.128 0.2919705
## COL 5852.983 6423.860 6842.533 0.2851346
## MEX 9273.811 9760.445 10077.383 0.4165746
## URU 16459.978 17342.791 18214.808 0.3643544
De acordo com os valores da coluna cres, os países de nosso grupo que mais cresceram foram a Argentina e o Uruguai.