Aprenda sobre tipos de dados e sua importância em uma linguagem de programação. Mais especificamente, veja como usar vetores, matrizes, listas e data frames na linguagem R.
Antes de começar a introdução e conhecer os vários tipos de dados em R, vamos configurar rapidinho o ambiente R tanto no Terminal quanto no Jupyter Notebook.
Depois que os dois comandos rodarem com sucesso, inicie o Jupyter pelo terminal e abra um notebook com o kernel R, como no exemplo:
Pronto! Você já pode escrever seu primeiro código em R no Jupyter Notebook.
Introdução
Para aproveitar o R ao máximo, é essencial conhecer e entender os vários tipos e estruturas de dados que existem na linguagem e como elas funcionam. Elas são fundamentais em praticamente todos os problemas e, especialmente, quando você trabalha com machine learning, área altamente centrada em dados.
Em uma linguagem de programação, geralmente usamos variáveis para armazenar informações, que podem ser inteiras, caracteres, ponto flutuante, booleanas etc. O tipo da variável depende do tipo de informação que ela guarda. Se recebe um inteiro, a variável tem tipo de dado int. Variáveis são apenas posições de memória reservadas onde valores são armazenados. Assim que você cria uma variável, um espaço de memória é reservado para ela.
Com base no tipo de dado da variável, o sistema operacional aloca uma certa quantidade de memória. Por exemplo, em R, uma variável que guarda um inteiro reserva 4 bytes de memória e 1 byte para um caractere.
Em linguagens como C, C++ e Java, variáveis são declaradas com um tipo de dado; porém, em Python e R, as variáveis são objetos. Objetos nada mais são do que estruturas de dados com alguns atributos e métodos aplicados a esses atributos.
Existem vários tipos de objetos/estruturas de dados em R que serão discutidos neste tutorial, como:
Integer: números que não possuem casas decimais têm tipo de dado integer. Para criar um integer explicitamente, use as.integer() passando a variável como argumento.
Character: como o nome sugere, uma letra ou combinação de letras entre aspas é considerada tipo de dado character pelo R. Pode conter letras ou números.
Factor: tipo de dado usado para representar relações qualitativas, como cores, bom & ruim, avaliações de cursos ou filmes etc. São úteis em modelagem estatística.
Para isso, você usará a função c(), que retorna um vetor (unidimensional) combinando todos os elementos.
fac <- factor(c("good","bad","ugly","good","bad","ugly"))Tecnologia
Diferente de vetores, uma lista pode conter elementos de vários tipos de dados e é frequentemente definida como uma coleção ordenada de valores. Ela pode conter vetores, funções, matrizes e até outra lista dentro dela (lista aninhada).
Listas em R são indexadas a partir de 1, ou seja, o índice começa em um.
Vamos entender listas com um exemplo rápido que terá três tipos de dados diferentes armazenados em uma única lista.
Vamos acessar cada vetor da lista separadamente. Para isso, use dois colchetes, já que os três vetores estão no mesmo nível dentro da lista. python
combined_list[[1]]
Por fim, vamos “achatar” a lista. Um ponto importante: como a combined_list combina tipos character e numeric, o tipo character tem precedência e o tipo de dado da lista achatada passa a ser character.
Vetores são objetos usados para armazenar múltiplos valores do mesmo tipo de dado. Um vetor não pode misturar integer e character. Por exemplo, se você quer guardar as notas finais de 100 alunos, em vez de criar 100 variáveis diferentes, crie um vetor de tamanho 100 que armazenará todas as notas.
Você cria um vetor com a função c(), que combina os elementos e retorna um array unidimensional.
Vamos criar um vetor marks com dados de cinco alunos do tipo numeric.
Diferente de uma matriz, data frames são uma forma mais geral de matriz. Eles contêm dados em formato tabular. Em um data frame, as colunas podem ter tipos de dados diferentes. A primeira coluna pode ser character, a segunda integer e a terceira logical.
As variáveis/recursos ficam em colunas, também chamadas de header, enquanto as observações ficam nas linhas, com o primeiro elemento sendo o nome da linha seguido dos dados, chamados de data rows.
Você cria um data frame com a função data.frame().
Data frames são amplamente usados para ler arquivos CSV e de texto. E não só para leitura: você também pode usá-los em problemas de machine learning, especialmente com dados numéricos. Eles são úteis para entender os dados, fazer wrangling, plotar e visualizar.
Vamos criar um dataset de exemplo e aprender algumas funções específicas de data frame.
dataset <- data.frame(
Person = c("Aditya","Ayush","Akshay"),
Age = c(26,26,27),
Weight = c(81,85,90),
Height = c(6,5.8,6.2),
Salary = c(50000,80000,100000))Tecnologia
Vamos ver a função head, muito útil quando você tem milhões de registros e quer olhar só as primeiras linhas. Da mesma forma, a função tail mostra as últimas linhas dos dados.
head(df1,3)# aqui serão impressas apenas três linhasTecnologia
Um data.frame: 3 × 5
Person
Age
Weight
Height
Salary
<fct>
<dbl>
<dbl>
<dbl>
<dbl>
1
Aditya
26
81
6.0
5e+04
2
Ayush
26
85
5.8
8e+04
3
Akshay
27
90
6.2
1e+05
str(dataset)# retorna a classe/tipo de dado individual de cada colunaTecnologia
'data.frame':3 obs.of5variables:
$ Person: Factor w/3 levels "Aditya","Akshay",..:132
$ Age : num 262627
$ Weight: num 818590
$ Height: num 65.86.2
$ Salary: num 5e+048e+041e+05Tecnologia
Agora vamos ver a função summary(), ótima para entender as estatísticas do seu dataset. Como abaixo, ela divide os dados em três quartis, o que ajuda a ter uma noção da distribuição. Também mostra se há valores ausentes.
Este conteúdo é um ótimo ponto de partida para quem quer aprender a linguagem R. Como exercício, explore mais funções auxiliares relacionadas a cada tipo de dado.
Ainda há muito sobre R para descobrirmos: condicionais e controle de fluxo, utilitários em R e, o mais empolgante, machine learning com R. Tudo isso será abordado em futuros tutoriais — fique de olho!
Se tiver qualquer dúvida sobre este tutorial, use a área de comentários abaixo.
Introdução às estruturas de dados do Python: saiba mais sobre tipos de dados e estruturas de dados primitivas e não primitivas, como strings, listas, pilhas etc.
Antes de começar a introdução e conhecer os vários tipos de dados em R, vamos configurar rapidinho o ambiente R tanto no Terminal quanto no Jupyter Notebook.
O comando a seguir é para macOS e vai instalar o R no seu terminal.
Para verificar se a instalação deu certo, basta digitar R (maiúsculo) no terminal para entrar em uma sessão do R, como mostrado abaixo.
Para instalação em outros sistemas operacionais, confira este tutorial.
Agora vamos adicionar a linguagem R como kernel no Jupyter Notebook. Certifique-se de que o Jupyter Notebook já está instalado no seu sistema.
Abra o terminal, inicie uma sessão do R e rode os dois comandos abaixo para adicionar o kernel do R ao seu Jupyter Notebook.
Depois que os dois comandos rodarem com sucesso, inicie o Jupyter pelo terminal e abra um notebook com o kernel R, como no exemplo:
Pronto! Você já pode escrever seu primeiro código em R no Jupyter Notebook.
Introdução
Para aproveitar o R ao máximo, é essencial conhecer e entender os vários tipos e estruturas de dados que existem na linguagem e como elas funcionam. Elas são fundamentais em praticamente todos os problemas e, especialmente, quando você trabalha com machine learning, área altamente centrada em dados.
Em uma linguagem de programação, geralmente usamos variáveis para armazenar informações, que podem ser inteiras, caracteres, ponto flutuante, booleanas etc. O
tipoda variável depende do tipo de informação que ela guarda. Se recebe um inteiro, a variável tem tipo de dadoint. Variáveis são apenas posições de memória reservadas onde valores são armazenados. Assim que você cria uma variável, um espaço de memória é reservado para ela.Com base no tipo de dado da variável, o sistema operacional aloca uma certa quantidade de memória. Por exemplo, em R, uma variável que guarda um inteiro reserva 4 bytes de memória e 1 byte para um caractere.
Em linguagens como C, C++ e Java, variáveis são declaradas com um tipo de dado; porém, em Python e R, as variáveis são objetos. Objetos nada mais são do que estruturas de dados com alguns atributos e métodos aplicados a esses atributos.
Existem vários tipos de objetos/estruturas de dados em R que serão discutidos neste tutorial, como:
Vetores
Listas
Matrizes
Arranjos (arrays)
Fatores
Data frames
Antes, vamos entender alguns tipos básicos sobre os quais os objetos de R são construídos: numeric, integer, character, factor e logical.
Você pode verificar o tipo de dado de
ausando a funçãoclass().as.integer()passando a variável como argumento.Para isso, você usará a função
c(), que retorna um vetor (unidimensional) combinando todos os elementos.O fator
factem três níveis: good, bad e ugly, que podem ser verificados com a funçãolevels; o tipo de cada nível é character.Antes de seguir, duas dicas rápidas que ajudam bastante:
ls(), como mostrado abaixo.Listas
Diferente de vetores, uma lista pode conter elementos de vários tipos de dados e é frequentemente definida como uma coleção ordenada de valores. Ela pode conter vetores, funções, matrizes e até outra lista dentro dela (lista aninhada).
Listas em R são indexadas a partir de 1, ou seja, o índice começa em um.
Vamos entender listas com um exemplo rápido que terá três tipos de dados diferentes armazenados em uma única lista.
Níveis:
Níveis:
Vamos acessar cada vetor da lista separadamente. Para isso, use
dois colchetes, já que os três vetores estão no mesmo nível dentro da lista.python combined_list[[1]]python combined_list[[2]]Níveis:
Agora, vamos acessar o quinto elemento do terceiro vetor, que é a letra
e.Por fim, vamos “achatar” a lista. Um ponto importante: como a
combined_listcombina tiposcharacterenumeric, o tipocharactertem precedência e o tipo de dado da lista achatada passa a sercharacter.Vetores
Vetores são objetos usados para armazenar múltiplos valores do mesmo tipo de dado. Um vetor não pode misturar integer e character. Por exemplo, se você quer guardar as notas finais de 100 alunos, em vez de criar 100 variáveis diferentes, crie um vetor de tamanho 100 que armazenará todas as notas.
Você cria um vetor com a função
c(), que combina os elementos e retorna um array unidimensional.Vamos criar um vetor
markscom dados de cinco alunos do tiponumeric.Vamos verificar o comprimento do vetor, que deve retornar o número de elementos.
Agora, vamos acessar um elemento específico pelo índice.
<NA>
Slicing: assim como em Python, o conceito de slicing também se aplica em R.
Vamos acessar os elementos do segundo ao quinto usando slicing.
Agora vamos criar um vetor
character, de forma semelhante ao numeric.'character'
Se criarmos um vetor com valores numéricos e de texto, os numéricos serão convertidos para tipo character.
Vamos criar um vetor com 1024 valores numéricos usando slicing.
Agora acesse o elemento do meio e o último. Para isso, use a função
length.Para criar um vetor de ímpares, use a função
seq, que recebe três parâmetros: início, fim e passo.Matriz
Assim como um vetor, uma matriz armazena informações do mesmo tipo de dado. Porém, diferente dos vetores, matrizes guardam informação bidimensional.
A sintaxe para definir uma matriz é:
byrow=TRUEindica que a matriz deve ser preenchida por linhas.byrow=FALSEindica preenchimento por colunas (padrão).Vamos definir rapidamente uma matriz
Mde formato 2×3.Vamos usar slicing para buscar elementos por linha e coluna.
Data frame
Diferente de uma matriz, data frames são uma forma mais geral de matriz. Eles contêm dados em formato tabular. Em um data frame, as colunas podem ter tipos de dados diferentes. A primeira coluna pode ser character, a segunda integer e a terceira logical.
As variáveis/recursos ficam em colunas, também chamadas de
header, enquanto as observações ficam nas linhas, com o primeiro elemento sendo o nome da linha seguido dos dados, chamados dedata rows.Você cria um data frame com a função
data.frame().Data frames são amplamente usados para ler arquivos CSV e de texto. E não só para leitura: você também pode usá-los em problemas de machine learning, especialmente com dados numéricos. Eles são úteis para entender os dados, fazer wrangling, plotar e visualizar.
Vamos criar um dataset de exemplo e aprender algumas funções específicas de data frame.
Vamos ver a função
head, muito útil quando você tem milhões de registros e quer olhar só as primeiras linhas. Da mesma forma, a funçãotailmostra as últimas linhas dos dados.Agora vamos ver a função
summary(), ótima para entender as estatísticas do seu dataset. Como abaixo, ela divide os dados em três quartis, o que ajuda a ter uma noção da distribuição. Também mostra se há valores ausentes.Conclusão
Parabéns por concluir o tutorial!
Este conteúdo é um ótimo ponto de partida para quem quer aprender a linguagem R. Como exercício, explore mais funções auxiliares relacionadas a cada tipo de dado.
Ainda há muito sobre R para descobrirmos: condicionais e controle de fluxo, utilitários em R e, o mais empolgante, machine learning com R. Tudo isso será abordado em futuros tutoriais — fique de olho!
Se tiver qualquer dúvida sobre este tutorial, use a área de comentários abaixo.
Se quiser aprender mais sobre R, faça o curso Intermediate R da DataCamp e confira o tutorial Introdução a data frames em R.