artigos2-08

Os principais objetos do R

Assim como a maioria das linguagens de programação modernas, o R é uma linguagem orientada a objetos. Por isso é indispensável aprender mais sobre os principais objetos do R e como usar cada um da melhor maneira possível.

Assim como a maioria das linguagens de programação modernas, o R é uma linguagem orientada a objetos. Por isso é indispensável aprender mais sobre os principais objetos do R e como usar cada um da melhor maneira possível.

A utilização adequada de diferentes objetos como vetores, fatores, matrizes, dataframes, tibbles e listas é fundamental para poder realizar algumas análises. Os dados obtidos de uma pesquisa por exemplo, podem ser dispostos de diferentes maneiras e isso permite diferentes análises.

Continue lendo para saber mais sobre os principais objetos do R.

Os objetos do r

Vetores

Podemos definir os vetores como uma sequência de valores alfanuméricos. Na maioria das vezes, é utilizado para expressar uma variável presente em uma base de dados, como por exemplo, peso, idade, altura, etc.

Exemplo: suponha que se queremos criar uma variável idade que armazena a informação da idade em anos de 10 indivíduos.

> idade <- c(25, 32, 27, 33, 42, 21, 35, 45, 33, 25)

Para exibir as informações contidas no vetor, basta chamar o nome do vetor criado:

> idade
  [1] 25 32 27 33 42 21 35 45 33 25

Fatores

Podemos definir os fatores como uma sequência de valores, definido por níveis. Um fator é muitas vezes utilizado para expressar uma variável categórica presente em uma base de dados, como sexo por exemplo. Nestes casos, os níveis representam as categorias da variável (masculino e feminino).

Exemplo: suponha que queremos criar uma variável sexo que armazena a informação do sexo de 10 indivíduos. Inicialmente, criamos um vetor:

> sexo <- c("Masculino", "Feminino", "Feminino", "Feminino", "Masculino", "Feminino", "Masculino", "Masculino", "Feminino", "Feminino")
> sexo
 [1] "Masculino" "Feminino" "Feminino" "Feminino" "Masculino" "Feminino" "Masculino" "Masculino" "Feminino" "Feminino"

Em seguida, utilizamos a função as.factor() para definir o vetor como um fator:

> fator_sexo <- as.factor(sexo)
> fator_sexo
  [1] Masculino Feminino Feminino Feminino Masculino Feminino Masculino Masculino Feminino Feminino
  Levels: Feminino Masculino

Observe que ao chamar o vetor sexo e o fator fator_sexo, o R apresenta o conteúdo de maneiras diferentes. Enquanto o vetor sexo contém elementos formados por uma sequência de caracteres, apresentada entre aspas, o fator fator_sexo é formado por níveis de um fator – não apresentados entre aspas.

Apesar de parecer sutil, a diferença é fundamental em diversos tipos de análise.

Matrizes

As matrizes se caracterizam por um conjunto de vetores. Para criar uma matriz, pode-se utilizar a função matrix(), que possui dois argumentos: o primeiro composto por um vetor com os elementos da matriz e o segundo composto pela informação do número de linhas (nrow) ou de colunas (ncol) da matriz.

Ao informar o número de linhas ou colunas, utilizando a função matrix(), o R irá preencher a matriz com os elementos informados iniciando pela primeira coluna. Para exemplificar a utilização da função matrix(), vamos criar quatro matrizes com os mesmos elementos, utilizando os argumentos ncol e nrow:

> matriz_1 <- matrix(c(1,2,3,4,5,6,7,8),ncol=2)
> matriz_2 <- matrix(c(1,2,3,4,5,6,7,8),ncol=4)
> matriz_3 <- matrix(c(1,2,3,4,5,6,7,8),nrow=4)
> matriz_4 <- matrix(c(1,2,3,4,5,6,7,8),nrow=2)
> matriz_1
     [,1] [,2]
[1,]   1    5
[2,]   2    6
[3,]   3    7
[4,]   4    8
> matriz_2
     [,1] [,2] [,3] [,4]
[1,]   1    3    5    7
[2,]   2    4    6    8
> matriz_3
     [,1] [,2]
[1,]   1    5
[2,]   2    6
[3,]   3    7
[4,]   4    8
> matriz_4
     [,1] [,2] [,3] [,4]
[1,]   1    3    5    7
[2,]   2    4    6    8

Observe que, apesar de terem sido criadas de maneiras diferentes, as matrizes matriz_1 e matriz_2 são equivalentes às matrizes matriz_3 e matriz_4. Isso porque uma matriz criada com duas colunas é igual àquela criada com quatro linhas e os mesmos 8 elementos.

É importante ressaltar que o número de elementos inseridos na matriz precisa ser múltiplo do número de linhas ou colunas.

> matriz_5 <- matrix(c(1,2,3,4,5,6,7,8),nrow=3)
Warning message:
In matrix(c(1, 2, 3, 4, 5, 6, 7, 8), nrow = 3) :
 comprimento dos dados [8] não é um submúltiplo ou múltiplo do número de linhas [3]

Outro aspecto importante para ter em conta é: uma matriz deve ser composta apenas por um único tipo de elemento. Por exemplo, ao construir uma matriz formada pelos vetores idade e sexo, criados anteriormente, a matriz não irá considerar os elementos de idade como numéricos, mas sim como uma sequência de caracteres, exibindo-os também entre aspas.

> matriz <- matrix(c(25, 32, 27, 33, 42, 21, 35, 45, 33, 25, "M", "F", "F", "F", "M", "F", "M", "M", "F", "F"), ncol=2)
> matriz
      [,1] [,2]
 [1,] "25" "M" 
 [2,] "32" "F" 
 [3,] "27" "F" 
 [4,] "33" "F" 
 [5,] "42" "M" 
 [6,] "21" "F" 
 [7,] "35" "M" 
 [8,] "45" "M" 
 [9,] "33" "F" 
[10,] "25" "F" 

Então como armazenar vetores numéricos e fatores em um mesmo conjunto ou estrutura de dados? Para isso utilizamos o conceito de dataframe.

Dataframe

A forma como os dados estão estruturados pode ser determinante para realizar uma análise. O objeto do tipo dataframe pode ser a melhor forma de armazenar os dados, já que permite trabalhar com vetores alfanuméricos e fatores.

O dataframe compartilha de muitas propriedades de matrizes e listas. Em geral, é utilizado com cada coluna representando uma variável e cada linha uma observação do conjunto de dados.

Para criar um dataframe, podemos utilizar a função data.frame():

> df <- data.frame(idade, fator_sexo)
> df
   idade fator_sexo
1     25  Masculino
2     32   Feminino
3     27   Feminino
4     33   Feminino
5     42  Masculino
6     21   Feminino
7     35  Masculino
8     45  Masculino
9     33   Feminino
10    25   Feminino

A forma como se organiza o dataframe pode determinar a viabilidade da utilização de determinadas funções e pacotes do R.

Por exemplo, vamos supor um experimento com três tratamentos (controle, pré-aquecido e pré-refrigerado) e quatro medições por tratamento. Uma maneira de estruturar os dados poderia ser:

> controle <- c(6.1, 5.9, 5.8, 5.4)
> pre_aquecido <- c(6.3, 6.2, 5.8, 6.3)
> pre_refrigerado <- c(7.1, 8.2, 7.3, 6.9)
> estrutura_1 <- data.frame(controle, pre_aquecido, pre_refrigerado)
> estrutura_1
  controle pre_aquecido pre_refrigerado
1      6.1          6.3             7.1
2      5.9          6.2             8.2
3      5.8          5.8             7.3
4      5.4          6.3             6.9

No entanto, na maioria das vezes é mais interessante utilizar apenas duas variáveis, por exemplo, tratamento e resposta. Neste caso, cada linha representaria uma medição.

> tratamento <- c(rep("controle",4), rep("pre_aquecido",4), rep("pre_refrigerado",4)
> resposta <- c(6.1, 5.9, 5.8, 5.4, 6.3, 6.2, 5.8, 6.3, 7.1, 8.2, 7.3, 6.9)
> estrutura_2 <- data.frame(tratamento, resposta)
> estrutura_2
        tratamento resposta
1         controle      6.1
2         controle      5.9
3         controle      5.8
4         controle      5.4
5     pre_aquecido      6.3
6     pre_aquecido      6.2
7     pre_aquecido      5.8
8     pre_aquecido      6.3
9  pre_refrigerado      7.1
10 pre_refrigerado      8.2
11 pre_refrigerado      7.3
12 pre_refrigerado      6.9

É importante ter em conta que estruturar bem os dados é o primeiro passo para realizar uma boa análise.

Tibbles

Uma tibble nada mais é do que um dataframe, mas com um método de impressão mais adequado.

As tibbles são parte do pacote dataframe. Assim, para começar a usá-las, é necessário instalar e carregar o pacote (“tibble”).

> install.packages("tibble")
> library(tibble)
> tibble(df)

# A tibble: 10 x 1
df    idade fator_sexo
             
 1       25 Masculino  
 2       32 Feminino   
 3       27 Feminino   
 4       33 Feminino   
 5       42 Masculino  
 6       21 Feminino   
 7       35 Masculino  
 8       45 Masculino  
 9       33 Feminino   
10       25 Feminino  

Listas

Não poderíamos finalizar esse artigo sem falar sobre o objeto da classe lista no R. Objetos da classe lista são muito úteis, pois são estruturas capazes de conter objetos de diversos tipos de classes.

Para exemplificar, vamos criar uma lista utilizando a função list() contendo um vetor, um fator, uma matriz e um dataframe criados anteriormente.

> lista <- list(idade, sexo, fator_sexo, matriz, df)
lista
[[1]]
 [1] 25 32 27 33 42 21 35 45 33 25

[[2]]
 [1] "Masculino" "Feminino"  "Feminino"  "Feminino"  "Masculino" "Feminino" 
 [7] "Masculino" "Masculino" "Feminino"  "Feminino" 

[[3]]
 [1] Masculino Feminino  Feminino  Feminino  Masculino Feminino  Masculino
 [8] Masculino Feminino  Feminino 
Levels: Feminino Masculino

[[4]]
      [,1] [,2]
 [1,] "25" "M" 
 [2,] "32" "F" 
 [3,] "27" "F" 
 [4,] "33" "F" 
 [5,] "42" "M" 
 [6,] "21" "F" 
 [7,] "35" "M" 
 [8,] "45" "M" 
 [9,] "33" "F" 
[10,] "25" "F" 

[[5]]
   idade fator_sexo
1     25  Masculino
2     32   Feminino
3     27   Feminino
4     33   Feminino
5     42  Masculino
6     21   Feminino
7     35  Masculino
8     45  Masculino
9     33   Feminino
10    25   Feminino

Manipulação de objetos

Agora que você já conhece um pouco mais sobre os principais objetos no R, está preparado para aprender como manipular esses objetos a fim de utilizá-los de maneira eficiente em suas análises. Mas isso é assunto para outro artigo.

Siga-nos nas redes sociais para ficar por dentro das novidades e saber quando saem os novos artigos. Qualquer dúvida deixe seu comentário aqui embaixo.

Share the Post:

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Related Posts

Pesquisa Operacional

Artigo feito em colaboração com Valéria Nicéria A Pesquisa Operacional, ou PO, ganhou destaque durante a Segunda Guerra Mundial. Devido

Read More