R: Criando seu primeiro Data Frame - TC

TC School / Quant & Investimentos

R: Criando seu primeiro Data Frame

17/08/2021 às 10:57

TC School

Agora que já aprendemos sobre variáveis, vetores e matrizes, chegou a hora de aprendermos a construir um Data frame no programa R. Nada mais, do que um dos conjuntos de dados mais importantes do R, é uma estrutura base para manipular diversas bases de dados financeiras.

Para facilitar o entendimento, separamos o texto nos seguintes tópicos:

  • O que é (de fato) um Data Frame?
  • Criando o primeiro conjunto de dados
  • Explorando a programação em R
  • Conclusão

Bons estudos!

Data Frame

O que é (de fato) um Data Frame?

Um Data Frame pode ser visto como uma “tabela” formada por um conjunto de dados, é similar a uma planilha do Excel, contendo linhas e colunas. Diferente das matrizes, ele aceita tipos de dados diferentes, com ele podemos ter – por exemplo – uma coluna de números seguida por uma coluna de texto.

Criando o primeiro Data Frame

Como dito acima, a principal vantagem de usarmos data frames é poder usar diferentes tipos de dados nas colunas. Vamos então criar o nosso primeiro conjunto de dados, que armazenará informações de uma carteira de dividendos fictícia contendo TAEE11, CSMG3, CPLE3, BRAP4 e VALE3.

Primeiro, vamos criar o vetor que armazena os nomes das ações.

acoes_dividendos <- c(“TAEE11”, “CSMG3”, “CPLE3”, “BRAP4”, “VALE3”)

Agora, vamos criar o vetor que armazena um yield anual fictício para cada uma das ações:

yield_dividendos <- c(0.11, 0.08, 0.12, 0.108, 0.105)

Obs.: Quando transformamos os vetores em colunas do data frame, o primeiro elemento do vetor de ações ficará na mesma linha que o primeiro elemento do vetor de yield, mas uma coluna antes.

Em seguida, criaremos mais um vetor para armazenar o aporte fictício em cada um dos papéis.

aporte_acoes <- c(1000, 900, 200, 500, 400)

Obs.: O terceiro vetor ficará na terceira coluna, com isso quis dizer que TAEE11, por exemplo, tem um yield de 0.11 e recebeu um aporte de 1000.

Finalmente, vamos criar o conjunto de dados. Para isso, usarei a função data.frame() e passarei os vetores como argumentos (a ordem importa).

carteira_dividendos <- data.frame(acoes_dividendos, yield_dividendos, aporte_acoes)

Feito! O seu primeiro data frame foi criado com sucesso, agora, temos uma pequena “planilha” informando nome, yield e aporte das ações da nossa carteira de dividendos:

carteira_dividendos

acoes_dividendos     yield_dividendos     aporte_acoes

1  TAEE11                       0.110                           1000
2  CSMG3                      0.080                           900
3  CPLE3                        0.120                           200
4  BRAP4                       0.108                           500
5  VALE3                       0.105                            400

Explorando o Data Frame

Existem três funções que são bastante úteis para obtermos informações rápidas sobre data frames grandes:

1. head(): com esta função, obtemos o retorno das primeiras linhas do nosso conjunto de dados (por padrão das seis primeiras linhas). A função head() aceita o argumento “n= …” que define o número de linhas que retornarão no comando.

2. tail(): retorna as últimas linhas do nosso data frame. Também aceita o argumento “n = …” que nos permite escolher o número de linhas que serão retornadas.

3. str(): checa a estrutura do nosso dataframe, com ela podemos descobrir que tipos de dados estão presentes em cada linha e cada coluna.

Antes de testarmos as três funções, criaremos mais um data frame, dessa vez com 10 linhas (similar ao anterior):

acoes_dividendos_2 <- c(“TAEE11”, “CSMG3”, “CPLE3”, “BRAP4”, “VALE3”, “BEEF3”,
“DEXP3”, “ITSA4”, “BBSE3”, “B3SA3”)

yield_dividendos_2 <- c(0.11, 0.08, 0.12, 0.108, 0.105, 0.91, 0.131, 0.05, 0.06, 0.10 )

aporte_acoes_2 <- c(1000, 900, 200, 500, 400, 300, 600, 700, 900, 1000)

carteira_dividendos_2 <- data.frame(acoes_dividendos_2, yield_dividendos_2, aporte_acoes_2) > carteira_dividendos_2

carteira dividendos

Feito! Temos agora um conjunto de dados com 10 linhas utilizando o programa R.

Vamos usar a função head() para explorar as primeiras linhas do nosso data frame:

ações dividendos

Note que ele nos retornou apenas as 6 primeiras linhas, nos dando uma prévia do nosso conjunto de dados.

Agora vamos usar a função tail() para explorar as últimas linhas do novo conjunto:

yield dividendos

Note que ele nos retornou as últimas 6 linhas do nosso Data Frame.

Por fim, vamos testar a função str() no nosso Data Frame “carteira_dividendos_2”:

> str(carteira_dividendos_2)
‘data.frame’: 10 obs. of 3 variables:
$ acoes_dividendos_2: chr “TAEE11” “CSMG3” “CPLE3” “BRAP4” …
$ yield_dividendos_2: num 0.11 0.08 0.12 0.108 0.105 0.91 0.131 0.05 0.06 0.1
$ aporte_acoes_2 : num 1000 900 200 500 400 300 600 700 900 1000

Note que a função nos informa o tipo de dado presente em cada coluna.

Na primeira coluna (acoes_dividendos_2) temos a presença de caracteres (chr). E na segunda (yield_dividendos_2) e na terceira coluna (aporte_acoes_2) temos a presença de variáveis numéricas (num).

Agora que já sabemos os comandos básicos, vamos aprender a acessar subconjuntos do data frame.

Acessando subconjuntos do Data Frame

Assim como as matrizes, podemos encontrar subconjuntos do nosso conjunto de dados. Usando o mesmo data frame do exemplo anterior, vamos encontrar apenas as informações das três primeiras linhas.

Para isso, também usamos o operador […,…] com o primeiro elemento indicando o número de linhas e o segundo (sem nada) indicando para retornar todas as colunas:

carteira_dividendos_2[1:3,]

carteira

dividendos yield

Também podemos acessar as colunas pelo nome, vamos por exemplo acessar a oitava linha da coluna aporte_acoes_2:

> carteira_dividendos_2[8, “aporte_acoes_2”]
[1] 700

Se referindo ao aporte feito na oitava ação (ITSA4) da nossa carteira.

Outro operador fundamental, principalmente para manipularmos data frames relacionados a ações é o “$”, com ele conseguimos obter todos os elementos de uma mesma coluna. Vamos acessar a coluna “acoes_dividendos_2”:

> carteira_dividendos_2$acoes_dividendos_2
[1] “TAEE11” “CSMG3” “CPLE3” “BRAP4” “VALE3” “BEEF3” “DEXP3” “ITSA4”
[9] “BBSE3” “B3SA3”

Usando o comando subset()

comando subset

A função subset() pode nos ajudar a acessar elementos específicos, com ela podemos, por exemplo, acessar só as informações relativas à ação TAEE11. Basta passarmos no argumento o nome do data frame, o nome da variável e o nome da ação:

> subset(carteira_dividendos_2, acoes_dividendos_2 == “TAEE11”)
Ações             DY            Aporte
1 TAEE11      0.11             1000

Também podemos “procurar” por ações por um dividend yield desejado com a mesma função. Vamos procurar ações com o DY de mais de 6%:

subset(carteira_dividendos_2, yield_dividendos_2 > 0.06)

subset yield

Adicionando e removendo colunas de um Data Frame

colunas dataframe

Para adicionarmos colunas no nosso Data Frame, utilizaremos um processo similar ao de criação de variáveis, só que dessa vez usaremos o operador “$” para denotar a adição de uma nova coluna. Vamos no exemplo adicionar a coluna “teste”:

carteira_dividendos_2$teste <- c(1, 1, 100, 100, 100, 100, 100, 100, 100, 100)

yield teste

Também podemos deletar facilmente uma coluna do nosso conjunto de dados, basta apontar a coluna a “NULL”. Vamos deletar a coluna “teste” do exemplo anterior:

carteira_dividendos_2$teste <- NULL

null

Renomeando as colunas do data frame com a função colnames()

carteira dividendos

Uma coisa que pode ter incomodado no processo de manipulação do data frame é o nome das colunas, fica um tanto feio o nome da coluna como “aporte_acoes_2”.

Para resolver, podemos usar a função colnames() e renomear cada uma de nossas colunas passando um vetor de caracteres:

colnames(carteira_dividendos_2) <- c(“Ações”, “DY”, “Aporte”)

aporte

Conclusão

Agora que aprendemos o que é um data frame e como construir um, podemos começar a explorar pacotes de dados financeiros. No artigo de Introdução ao R, aprenderemos a baixar dados da B3, organizá-los em um data frame e construir gráficos estáticos e animados.

Baixe nosso app grátis! No TC você acompanha as principais notícias e cotações do mercado em tempo real, além de ter acesso a canais exclusivos para interagir com os melhores profissionais.

A gente também está no Instagram e no TikTok. Acompanhe!

Lucca Carlini
Lucca Carlini
Estudante de Economia na UFPE

TC School

A sua escola como investidor.

Disclaimer: Este material é produzido e distribuído somente com os propósitos de informar e educar, e representa o estado do mercado na data da publicação, sendo que as informações estão sujeitas a mudanças sem aviso prévio. Este material não constitui declaração de fato ou recomendação de investimento ou para comprar, reter ou vender quaisquer títulos ou valores mobiliários. O usuário não deve utilizar as informações disponibilizadas como substitutas de suas habilidades, julgamento e experiência ao tomar decisões de investimento ou negócio. Essas informações não devem ser interpretadas como análise ou recomendação de investimentos e não há garantia de que o conteúdo apresentado será uma estratégia efetiva para os seus investimentos e, tampouco, que as informações poderão ser aplicadas em quaisquer condições de mercados. Investidores não devem substituir esses materiais por serviços de aconselhamento, acompanhamento ou recomendação de profissionais certificados e habilitados para tal função. Antes de investir, por favor considere cuidadosamente a sua tolerância ou a sua habilidade para riscos. A administradora não conduz auditoria nem assume qualquer responsabilidade de diligência (due diligence) ou de verificação independente de qualquer informação disponibilizada neste espaço. Administradora: TradersNews Informação & Educação Ltda. Todos os direitos reservados.

TradersClub

O app essencial para investidores do mercado financeiro brasileiro.

Uma comunidade com milhares de investidores, ferramentas e serviços que vão ajudar você a investir melhor!

TradersClub