Olá! Boas-vindas ao curso de ChatGPT com R.
Sou o Marcelo Cruz, faço parte da Escola de Dados e vou te acompanhar durante esse curso.
Audiodescrição: Marcelo é uma pessoa de pele clara, cabelos e barba castanhos-escuros. Usa uma camiseta preta e um headphone. Ao fundo, uma parede lisa com iluminação azul.
Esse curso é para você que está dando os primeiros passos na análise de dados com R e também para quem deseja automatizar as tarefas do dia a dia.
Como projeto, analisaremos os dados de vendas de um e-commerce fictício chamado Meteora. Para isso, contaremos com a ajuda do ChatGPT, criando prompts e validando suas respostas.
Nosso objetivo é proporcionar uma aprendizagem ativa, para que você possa extrair o máximo proveito do conteúdo. Para isso, disponibilizamos atividades entre os vídeos, textos complementares, exercícios e muita prática.
Lembrando que esse curso não possui pré-requisitos!
Caso sujam dúvidas na sua jornada de aprendizado, você pode utilizar o Fórum e participar da nossa comunidade no Discord. Nesses ambientes, você poderá conversar com a monitoria e pessoas estudantes.
Estamos muito animados com sua presença. Vamos começar?
Fomos contratados como cientistas de dados pela Meteora, que utiliza a linguagem de programação R.
Embora tenhamos familiaridade com outras linguagens de programação, ainda não temos experiência com a programação R. Para nos auxiliar no projeto da Meteora, contaremos com a ajuda do ChatGPT.
Nossa principal tarefa será a análise de dados, mais especificamente os dados de vendas do primeiro trimestre de 2019. Para isso, seguiremos algumas etapas:
O objetivo final dessa análise será responder a algumas perguntas de negócios que a liderança nos passou. Sendo elas:
Quais as 10 marcas com maior faturamento?
Quais pessoas vendedoras tem o melhor desempenho em vendas?
Existem diferenças significativas nas vendas entre os estados?
Quais os 10 produtos com maior faturamento?
Como a condição do produto impacta no seu valor total?
Para executar o código R, utilizaremos um ambiente de desenvolvimento em nuvem chamado Posit Cloud. Mais especificamente, utilizaremos o notebook R Markdown. É nesse ambiente que importaremos nosso projeto e os arquivos para análise. Conheceremos esse ambiente.
Para isso, no navegador, acessamos o site do Posit Cloud. Começaremos criando uma nova conta nessa ferramenta.
Na lateral superior direita, encontramos o botão "Log In", para entrar na conta e o botão "Sign Up" para criar, então, clicamos na segunda opção. Feito isso, somos encaminhados para uma página onde é exibida as opções de pacotes oferecidas pela ferramenta.
Embora seja uma ferramenta paga, há uma opção gratuita limitada. É essa que usaremos, sendo assim, clicamos no botão "Learn More". Na página que abre, é exibido as limitações do pacote gratuito. Após ler, na lateral direita clicamos no botão "Sign Up".
Abre uma página de cadastro padrão, nela preencheremos dados como nome, e-mail e senha.
Lembrando que disponibilizamos como material complementar das aulas uma explicação mais detalhada do Posit, assim como importar arquivos e o R Markdown.
Conta criada, iniciaremos nosso projeto. O primeiro passo será realizar uma exploração inicial dos dados. Para isso, precisamos carregar nossos dados. Usaremos um arquivo no formato JSON chamado base_de_dados_praca_meteoro
.
Esse arquivo JSON está estruturado em campos de chave e valor, a chave se refere aos campos de identificação e o valor aos registros. Precisamos importá-lo com o R para trabalhar com ele no formato tabular.
Para isso, iniciaremos o notebook e com a ajuda do ChatGPT criaremos o código R para realizar a importação. Vamos lá!
Começamos abrindo o notebook. Nessa etapa inicial, é importante considerarmos a recomendação da liderança, que solicitou a utilização de pacotes comuns ao trabalhar com R, nesse caso, a coleção de pacotes chamada Tidyverse. Usaremos o pacote dplyr.
Sabendo disso, escrevemos o seguinte prompt:
Vamos atuar como cientistas de dados em uma loja de roupas!
Recebemos dados no formato de arquivo JSON, estruturados em linhas e colunas. O arquivo está salvo localmente.
Precisamos analisar esses dados para ajudar nas decisões da loja. Programamos em R conhecemos a coleção de pacotes de manipulação de dados tidyverse, mais especificamente o pacote dplyr. Portanto, priorize o uso dessa biblioteca.
Por favor, nos informe como podemos fazer a leitura desses dados no formato JSON e como podemos visualizá-los em formato de tabela no R.
Copiamos esse prompt. Depois, no navegador, acessamos o ChatGPT na versão gratuita 3.5 e fazemos o login. No campo de texto, colamos e pressionamos "Enter".
Feito isso, temos o seguinte retorno:
Claro! Para trabalhar com dados em formato JSON no R, você pode usar o pacote
jsonlite
para ler os dados e o pacotetidyverse
para manipulação.Passo 1: Instalação dos pacotes Se ainda não tiver os pacotes instalados, você pode instalá-los usando o seguinte código:
R
install.packages("jsonlite") install.packages("tidyverse")
Passo 2: Carregar os pacotes Depois de instalados, carregue os pacotes:
library(jsonlite) library(tidyverse)
Passo 3: Leitura dos dados JSON Supondo que seus dados estão em um arquivo chamado "dados.json", você pode lê-los assim:
R
caminho_do_arquivo <- "caminho/para/seu/arquivo/dados.json" dados <- fromJSON (caminho_do_arquivo)
Isso carregará os dados JSON em um objeto do tipo data frame em R.
Passo 4: Visualização dos dados em formato de tabela Agora, para visualizar os dados em formato de tabela, você pode usar as funções do dplyr. Por exemplo, para visualizar as primeiras linhas dos dados, você pode usar:
R
head (dados)`
Se precisar de ajuda específica com alguma análise ou manipulação, me avise!
O ChatGPT indicou alguns passos para seguirmos, sendo o primeiro de instalaçã da biblioteca jsonlite
, provavelmente específica para importar o arquivo JSON e carregar as bibliotecas.
Foi indicado realizar a leitura dos dados por meio do caminho do arquivo JSON, em uma variável caminho_do_arquivo
, usando a função fromJSON
para importar esses dados para o nosso dataframe chamado dados. Por fim, no quarto passo, o ChatGPT indicou uma forma de visualização utilizando a função head(dados)
.
Usaremos todos esses códigos, começando pela instalação da biblioteca. Então, copiamos e abrimos nosso projeto no Posit. Antes de colar, criaremos uma célula de código do R.
Podemos fazer isso de suas formas, usando o atalho "Ctrl + Alt + I" ou então, na própria ferramenta, próximo ao centro direito da tela, clicamos no botão indicado por um quadrado verde com a letra "C" e um símbolo de "+" acima. Depois, clicamos na opção "R". Feito isso, colamos o código.
install.packages("jsonlite")
install.packages("tidyverse")
Para rodar o código, na lateral superior direita, clicamos no botão identificado pelo ícone de play, um triângulo deitado. Feito isso, concluimos a isntalação dos pacotes.
Voltamos ao ChatGPT e copiamos o código de carregamento dos pacotes. No Posit, pressionamos "Ctrl + Alt + I", colamos e rodamos o código.
library(jsonlite)
library(tidyverse)
Nos passos seguintes, seguiremos esse mesmo processo. Copiamos o código de leitura do arquivo JSON, pressionamos "Ctrl + Alt + I" e colamos. Antes de rodar, precisamos mudar o caminho do arquivo. Para isso, passamos Base de Dados - Meteora.json
e rodamos.
caminho_do_arquivo <- "Base de Dados - Meteora.json"
dados <- fromJSON (caminho_do_arquivo)
Por fim, copiamos o código de exibição dos dados, colamos no Posit e rodamos.
head (dados)
Temos o seguinte retorno:
produto_id | pedido_id | vendedor_id | id_nf | produto | venda | |
---|---|---|---|---|---|---|
1 | 41518 | 341 | 5 | 1 | <data.frame [6 x 4]> | <data.frame [6 x 6]> |
2 | 4307 | 1174 | 3 | 2 | <data.frame [6 x 4]> | <data.frame [6 x 6]> |
3 | 22407 | 1399 | 1 | 3 | <data.frame [6 x 4]> | <data.frame [6 x 6]> |
4 | 3820 | 1652 | 4 | 4 | <data.frame [6 x 4]> | <data.frame [6 x 6]> |
5 | 29012 | 2470 | 2 | 5 | <data.frame [6 x 4]> | <data.frame [6 x 6]> |
6 | 72621 | 2980 | 1 | 6 | <data.frame [6 x 4]> | <data.frame [6 x 6]> |
Assim, podemos conferir todas as colunas do dataset. As primeiras linhas se referem ao registro, temos o produto_id
, pedido_id
, vendedor_id
e id_nf
. Por fim, temos as colunas produto
e venda
, que são diferentes das demais.
Conseguimos identificar que, em produtos, há outros campos dentro cada um desses registros. Dessa forma, não conseguimos fazer uma exploração completa do dataset. Sendo assim, precisamos encontrar uma forma de expor esses dados com os demais.
Para isso, podemos contar novamente com a ajuda do ChatGPT. Usaremos o seguinte prompt:
O DataFrame "dados" possui as colunas produto_id, pedido_id, vendedor_id, id_nf, produto e venda.
As colunas "produto" e "venda" contém campos em formato de dataframe dentro de cada uma das linhas. Dessa forma, não consigo ver os dados que estão dentro desses campos. Como posso acessar esses dados que estão nesses campos em formato de dataframe?
Copiamos, abrimos o ChatGPT, colamos no chat e pressionamos "Enter". Temos o seguinte retorno:
Entendi, parece que os campos "produto" e "venda" contêm data frames aninhados dentro de cada linha do seu data frame principal. Para acessar esses dados, você pode usar a função unnest() do pacote dplyr. Aqui está um exemplo de como você pode fazer isso:
R
library(dplyr)
Esta linha carrega o pacote 'dplyr, que é amplamente utilizado para manipulação eficiente de dados em R.
R
dados <- dados %>% unnest(cols = c(produto, venda))
%>%
é o operador pipe, que permite encadear várias operações de forma mais legível.
dado %>%
indica que as operações a seguir serão aplicadas ao data frame dados.
unnest(cols = c(produto, venda))
éa operação que expande os data frames aninhados nas colunas "produto" e "venda".A função
unnest()
é usada para "desdobrar" ou "desaninhar" colunas que contêm listas ou data frames aninhados. No seu caso, as colunas "produto" e "venda" contêm data frames aninhados, eunnest(cols = c(produto, venda))
desaninha esses data frames.//Retorno omitido
O ChatGPT sugere a utilização da função unnest()
para acessar os dados. Para isso, a IA sugere carregarmos a biblioteca do dplyr
e depois disponibiliza o código com a função.
Primeiro carregaremos a biblioteca dplyr
, então, copiamos o primeiro código. Abrimos o Posit, pressionamos "Ctrl + Alt + I", colamos e rodamos.
library(dplyr)
Fazemos o mesmo procedimento com o segundo código.
dados <- dados %>%
unnest(cols = c(produto, venda))
Agora, para verificarmos quais campos existem a partir do desalinhamento, rodaremos novamente o código abaixo:
head(dados)
Assim, temos o seguinte retorno:
produto_id | pedido_id | vendedor_id | id_nf | produto_nome | marca | sku |
---|---|---|---|---|---|---|
41518 | 341 | 5 | 1 | Calça Jeans Básica | Banana Republic | 255410 |
4307 | 1174 | 3 | 2 | Bolsa Intrecciato Caramelo | Bottega Veneta | 301305 |
22407 | 1399 | 1 | 3 | Cropped Listras Florzinhas | Topshop | 327426 |
3820 | 1652 | 4 | 4 | Shorts Jeans Tye Dye | Lezalez | 252560 |
29012 | 2470 | 2 | 5 | Casaco Branco Costuras | Tigresse | 257889 |
72621 | 2980 | 1 | 6 | Capa Fio Marrom | Zara | 304783 |
//Colunas omitidas |
Vamos conferir se essa é a resposta que queríamos. Repare que agora não temos apenas os campos de produto e venda, visualizamos os campos escondidos, como produto_nome
, marca
, sku
, condicao
, data_compra
, quantidade
, preco
, valor_total
, Estado
e frete
.
Agora todos os campos estão disponíveis para exploração, faremos isso no vídeo seguinte. Até lá!
No vídeo anterior, carregamos nossos dados e descobrimos que havia alguns campos alinhados. Tratamos isso usando o ChatGPT.
Agora, com todos os campos visíveis, entenderemos a estrutura dos dados, verificar se existem valores ausentes, duplicados ou outras inconsistências. A partir dessa análise, identificaremos qual o próximo tratamento a ser realizado.
Para fazermos a exploração de dados, preparamos o seguinte prompt:
O DataFrame "dados" contém dados referentes às vendas de diversos produtos. São fornecidos IDs de produtos, de pedidos, de vendedor e de nota fiscal, o nome do produto, a marca, o sku, sua condição, data de compra, quantidade, preço, valor total, estado e
frete.
Estamos iniciando a etapa de exploração de dados, na qual desejamos conhecer os valores informados, entender a estrutura dos dados, identificar se existem valores ausentes, duplicados e únicos.
Por favor, construa um código para executar a etapa de exploração de dados usando o R.
Copiamos o prompt, abrimos o ChatGPT no navegador, colamos no chat e pressionamos "Enter". Feito isso, temos o seguinte retorno:
Claro, vou adicionar breves explicações para cada parte do código:
# Carregue as bibliotecas library(dplyr) library(tidyr)
Aqui, carregamos as bibliotecas dplyr e tidyr, que são amplamente utilizadas para manipulação e limpeza de dados no R.
# Visualize as primeiras linhas dos dados head (dados)
Essa linha exibe as primeiras linhas do seu conjunto de dados, permitindo uma rápida visualização dos primeiros registros.
# Resumo estatístico summary (dados)
# informações sobre os dados str (dados)
//Retorno omitido
Primeiramente, é solicitado carregar a biblioteca dplyr. Depois, devemos utilizar a função head(dados)
, para exibir esses dados. É sugerido um resumo estatístico através da função summary
, que fornece um resumo estatístico das variáveis em seus dados e as informações sobre os dados com a função str(dados)
, que mostra a estrutura geral, incluindo os tipos de variáveis.
Sendo assim, no nosso caso rodaremos apenas as funções str(dados)
e summary(dados)
, pois já importamos a biblioteca dplyr e tidyr, e também já visualizamos os dados com a função head(dados)
.
Começaremos pela função summary(dados)
.
# Resumo estatístico
summary (dados)
São retornados os valores estatísticos de mínimo, primeiro quartil, mediana, média, terceiro quartil e máxima para os campos de produto_id, pedido_id, vendedor_id, id_nf e sku. Enquanto para os campos de produto_nome, marca e condicao são informados seu tamanho, classe e modo. Em seguida, rodamos a função str(dados)
.
# informações sobre os dados
str(dados)
E temos o retorno abaixo.
tibble [25,199 × 14] (S3: tbl_df/tbl/data.frame)
$ produto_id : num [1:25199] 41518 4307 22407 3820 29012 ...
$ pedido_id : int [1:25199] 341 1174 1399 1652 2470 2980 3443 3557 3585 3687 ...
$ vendedor_id : num [1:25199] 5 3 1 4 2 1 3 4 1 3...
$ id_nf $ : int [1:25199] 1 2 3 4 5 6 7 8 9 10 ...
produto_nome: chr [1:25199] "Calça Jeans Básica" "Bolsa Intrecciato Caramelo"
"Cropped Listras Florzinhas" "Shorts Jeans Tye Dye"
$ marca : chr [1:25199] "Banana Republic" "Bottega Veneta" "Topshop" "Lezalez"
...
$ sku
: int [1:25199] 255410 301305 327426 252560 257889 304783 909166 257889
308101 175945 ...
$ Condicao : chr [1:25199] "novo_com_etiqueta" "usado" "usado" "usado"
$ data_compra: chr [1:25199] "2019-01-05" "2019-01-05" "2019-01-05" "2019-01-05"
$ quantidade : int [1:25199] 3 5 3 6 3 3 4 3 3 2...
$ preco : num [1:25199] NA 6175 200 139 525 ...
$ valor_total : int [1:25199] 780 30875 600 834 1575 537 1400 1575 1350 960
$ Estado : chr [1:25199] "BR-BA" "BR-RJ" "BR-PB" "BR-DF"
//Retorno omitido
Nesse caso, focaremos apenas na função str()
, que vai verificar a estrutura dos dados. Podemos notar que em cada campo é inficado o tipo de dado, o número de registro e os primeiros registros desse campo.
Notamos que os campos de id, estão preenchidos com num
, int
e chr
. Repare que data_compra
também está definido como chr
, um caractere. Porém, nesse caso, deve existir um tipo específico de data. Para resolver é simples, então, faremos agora esse tratamento.
Precisaremos usar uma função R que converta esse tipo. Para isso, usaremos o seguinte prompt:
Ao executar o comando `str()`, percebi que a coluna `data_compra` está definida como tipo `chr`. Porém, esse campo possui valores que correspondem a datas, ou seja, o seu tipo de dado deveria ser data.
Como posso realizar essa modificação no tipo de dado do campo `data_compra`?
Copiamos o prompt, colamos no ChatGPT e pressionamos "Enter". Assim, temos a resposta abaixo:
Para modificar o tipo de dado da coluna "data_compra" para o formato de data, você pode usar a função as.Date do R. Aqui está um exemplo de como você pode fazer isso:
#Supondo que o formato da data seja "yyyy-mm-dd", ajuste conforme necessário dados$data_compra <- as. Date(dados$data_compra, format = "%Y-%m-%d")
//Retorno omitido
O ChatGPT sugere a utilização da função as.Date()
, passando o campo data_compra
e o argumento format
. Este código converte a coluna data_compra
para o tipo de dado de data, assumindo que o formato das datas seja ano, mês e dia. Se o formato for diferente, podemos ajustar o argumento format
".
Rodamos esse código e para confirmar que realmente mudou, rodamos novamente a função str(dados)
. Temos o seguinte retorno:
//Retorno omitido
$ sku : int [1:25199] 255410 301305 327426 252560 257889 304783 909166 257889
308101 175945
$ Condicao : chr [1:25199] "novo_com_etiqueta" "usado" "usado" "usado" ...
$ data_compra: Date[1:25199], format: "2019-01-05" "2019-01-05" ...
$ quantidade : int [1:25199] 3 5 3 6 3 3 4 3 3 2 ...
$ preco : num [1:25199] ΝΑ 6175 200 139 525 ...
$ valor_total : int [1:25199] 780 30875 600 834 1575 537 1400 1575 1350 960 ... $ Estado : chr [1:25199] "BR-BA" "BR-RJ" "BR-PB" "BR-DF" ...
$ frete : int [1:25199] 156 6175 120 167 315 107 280 315 270 192
Agora o campo data_compra
possui o tipo de dado date
, deu certo.
Dessa forma, encerramos a primeira aula na qual começamos a análise dos dados, conhecemos a estrutura e realizamos o tratamento na coluna data_compra
.
O foco da aula seguinte será realizar a limpeza e o tratamento dos dados usando o ChatGPT.
Te esperamos lá!
O curso ChatGPT com R: utilizando o ChatGPT como assistente possui 119 minutos de vídeos, em um total de 55 atividades. Gostou? Conheça nossos outros cursos de IA para Dados em Inteligência Artificial, ou leia nossos artigos de Inteligência Artificial.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.