Tipos de dados complexos em R

Além dos tipos de variáveis mais conhecidos (character, interger, boolean), a linguagem R também suporta outros tipos de dados, a qual podemos chamar de tipos complexos, sendo eles:

  • Vetores (vector)
  • Matrizes (matrix)
  • Fatores (factor)
  • Listas (list)
  • Data frames (data frames)

Vetores

Tradicionamento igual à outras linguagens de programação, o vetor também é um objeto em R, a qual deve ter o mesmo tipo de dado para todas as suas posições.

É possível criar um vetor de objetos através do comando c() [c abre e fecha parenteses]

Alguns exemplos de criação de um vetor

De numéricos

> vetor <- c(0,1,2,3,4,5,6,7,8,9,10); vetor 
[1] 0 1 2 3 4 5 6 7 8 9 10
> vetor2 <- c(0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5); vetor2
[1] 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5

Além dos vetores de conteúdo numérico, é possível fazer vetores com os outros tipos de dados, como valores lógicos:

>vetorLogico <- c(TRUE, FALSE, TRUE, FALSE, TRUE, FALSE); vetorLogico  
[1] TRUE FALSE TRUE FALSE TRUE FALSE  

> vetorLogico2 <- c(T, F, T, F, T, F); vetorLogico2
[1] TRUE FALSE TRUE FALSE TRUE FALSE

Valores caracteres:

> vetorCaracter <- c("A","b","C","d","E"); vetorCaracter  
[1] "A" "b" "C" "d" "E"  

> vetorCaracter2 <-c("Ana","Pedro","Maria","Joao","José"); vetorCaracter2
[1] "Ana" "Pedro" "Maria" "Joao" "José"

Valores inteiros (deixando explicito com a letra L):

> vetorInteiro <- c(1L, 2L, 3L, 4L, 5L); vetorInteiro  
[1] 1 2 3 4 5  

> vetorInteiro2 <- c(1L, 10L, -20L, 0L, -10L); vetorInteiro2
[1] 1 10 -20 0 -10

Valores de objetos complexos:

> vetorCOmplexo <- c(10+0i, 20+1i, 30+2i); vetorCOmplexo
[1] 10+0i 20+1i 30+2i

Sequências de numeração

Além dessas criações tradicionais, a linguagem R entende que o operador : (dois pontos) pode criar uma sequencia de valores, colocando um número inicial e o número final.

> 1:5
[1] 1 2 3 4 5

> 10:5
[1] 10 9 8 7 6 5

> -5:5
[1] -5 -4 -3 -2 -1 0 1 2 3 4 5

Outras formas de se criar sequencias, podem ser feitas atrvés dos exemplos:

> 0.5:10
[1] 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5

Colocando a sequencia do maior para o menor, o R consegue identificar que a sequencia precisa ser criada em ordem invertida:

> 10:1
[1] 10 9 8 7 6 5 4 3 2 1

O comando seq()

Até o modo visto, a sequencia era cria conforme critérios do R. É possível também criarmos sequencias, colocando o passo das sequencias, através do comando seq(). Como é um recurso menos utilizado, a sintaxe torna-se um pouco mais verbosa:

> seq(from=1, to=10, by=2)
[1] 1 3 5 7 9

Como é a sequencia padrão do comando seq, é possível escrever o comando simplificado (porém não recomendado)

> seq(1,10,2)
[1] 1 3 5 7 9

É possível escrever o comando passando o nome dos parametros (em qualquer ordem):

> seq(to=20, by=2, from=1)
[1] 1 3 5 7 9 11 13 15 17 19

Tanbém podemos fazer com que seja preenchidos a quantidade desejada de sequencia, sem passar o número fim pre-fixado. No caso abaixo, foi a sequencia foi iniciada em 2, com o passo de 2 em 2, preenchendo a sequencia de 10 números.

> seq(from=2, by=2, length.out=10)
[1] 2 4 6 8 10 12 14 16 18 20

O comando rep()

Além das sequencias de auto-incremento visto anteriormente, é possível utilizar a função de replicação, através do comando rep(). Uma observação importante é que só podemos utilizar a variável x para ser atribuído os valores.

> rep(x=1, times=10)
[1] 1 1 1 1 1 1 1 1 1 1

Podemos criar um vetor com diferentes valores e pedir para ser replicado 2 vezes

> rep(x=c("a","b","c"), times=2)
[1] "a" "b" "c" "a" "b" "c"

Ainda há possibilidade de ser criado um vetor com diferentes valores, ser replicado 3 vezes, com repetição dos elementos a cada duas vezes

> rep(x=c("a","b","c"), times=3, each =2)
[1] "a" "a" "b" "b" "c" "c" "a" "a" "b" "b" "c" "c" "a" "a" "b" "b" "c" "c"

 

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s