Sei sulla pagina 1di 9

Os principais objetos do R

 2 de out de 2017

Hoje daremos sequência a série de artigos sobre o uso do R, tratando sobre seus principais
objetos: vetores, fatores, matrizes, dataframes e listas. O entendimento de cada um destes
objetos básicos é muito importante pois são conceitos frequentemente utilizados.

Como dissemos anteriormente, aqueles que nunca tiveram contato com alguma linguagem de
programação podem se assustar inicialmente. No entanto, trabalhar com o R é mais simples do
que parece.

Leia também: Uma breve introdução ao software 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 queira 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 se queira 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" "F
eminino"

Em seguida, utiliza-se 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, ela é de fundamental importância 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_2são equivalentes às matrizes matriz_3 e matriz_4. Isso porque
uma matriz criada com duas colunas é a igual àquela criada com quatro linhas e os mesmos 8
elementos.

É importante ressaltar que o número de linhas ou colunas informado precisa ser múltiplo do
número de elementos inseridos na matriz.
> 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 a se ter em conta é que uma matriz apenas pode ser composta 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"

Como armazenar vetores numéricos e fatores em um mesmo conjunto ou estrutura de dados?


Para isso, se pode utilizar o conceito de dataframe.

Dataframe
A forma como os dados estão estruturados pode ser determinante para se conseguir realizar
determinada análise. O objeto do tipo dataframe pode ser a melhor forma de armazenar os
dados, pois ele pode conter vetores alfanuméricos e fatores.

O dataframe compartilha de muitas propriedades de matrizes e listas e em geral é utilizado com


cada coluna representando uma variável e cada linha uma observação do conjunto de dados.

Para criar um dataframe, pode-se 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 pode ser 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.

Listas
Não poderíamos finalizar esse artigo sem referir ao 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

Potrebbero piacerti anche