A Básicos da linguagem R

Para instalação,

É muito importante saber como obter ajuda no R. Sempre que estiver em dúvidas quanto as características de alguma função, consule a aba help do R.

A.1 Usando o R como uma calculadora

O operador + realiza a adição entre dois elementos.

## [1] 3

Um vetor é um conjunto ordenado de valores. O operador : cria uma sequência a partir de um número até outro. A função c concatena valores, criando um vetor.

## [1] 1 2 3 4 5
## [1] 1 2 3 4 5

Além de adicionar dois números, o operador + pode ser usado para adicionar dois vetores.

## [1]  7  9 11 13 15
## [1]  7  9 11 13 15
## [1]  7  9 11 13 15

Os próximos exemplos mostram subtração, multiplicação, exponenciação e divisão.

## [1]  0  1  3  5  9 11
## [1] 4 1 0 1 4
##  [1]   1   4   9  16  25  36  49  64  81 100
##  [1] 0,3333333 0,6666667 1,0000000 1,3333333 1,6666667 2,0000000 2,3333333
##  [8] 2,6666667 3,0000000 3,3333333

A.2 Atribuindo variáveis

Fazer cálculos com o R é bem simples e útil. A maior parte das vezes queremos armazenar os resultados para uso posterior. Assim, podemos atribuir valor à uma variável, através do operador <-.

Agora, podemos reutilizar esses valores para fazer outros cálculos.

## [1] 31
## [1] 10 13 16 19 22

Observe que não temos que dizer ao R qual o tipo da variável, se era um número (as variáveis a e a) ou vetor (x e y).

A.3 Números especias

Para facilitar operações aritméticas, R suporta quatro valores especiais de números: Inf, -Inf, NaN e NA. Os dois primeiros representam infinito positivo e negativo. NaN é um acrônimo inglês para “not a number”, ou seja, não é um número. Ele aparece quando um cálculo não faz sentido, ou não está definido. NA significa “not available”, ou seja, não disponível, e representa um valor faltante.

## [1] Inf Inf NaN  NA
## [1] NaN NaN   0

A.4 Vetores, Matrizes e Dataframes

Previamente, vimos alguns tipos de vetores para valores lógicos, caracteres e números. Nessa seção, utilizaremos técnicas de manipulação de vetores e introduziremos o caso multidimensional: matrizes e dataframes.

Abaixo relembramos as operações que já foram feitas com vetores

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

A.4.1 Vetores

Existem funções para criar vetores de um tipo e com tamanho específicos. Todos os elementos deste vetor terá valor zero, FALSE, um caracter vazio, ou o equivalente à nada/vazio para aquele tipo. Veja abaixo duas maneiras de definir um vetor.

## [1] 0 0 0 0 0
## [1] 0 0 0 0 0
## [1] FALSE FALSE FALSE FALSE FALSE
## [1] FALSE FALSE FALSE FALSE FALSE
## [1] "" "" "" "" ""
## [1] "" "" "" "" ""

A.4.1.1 Sequências

Podemos criar sequências mais gerais que aquelas criadas com o operador :. A função seq te permite criar sequências em diferentes maneiras Veja abaixo.

##  [1]  3  4  5  6  7  8  9 10 11 12
## [1]  3  5  7  9 11
##  [1] 0,10 0,09 0,08 0,07 0,06 0,05 0,04 0,03 0,02 0,01

A.4.1.2 Tamanhos

Todo vetor tem um tamanho, um número não negativo que representa a quantidade de elementos que o vetor contém. A função length retorna o tamanho de um dado vetor.

## [1] 5
## [1] 6
## [1] 7 1 9 3 8 6

A.4.1.3 Indexando vetores

A indexação é útil quando queremos acessar elementos específicos de um vetor. Considere o vetor

Abaixo, três métodos de indexar os mesmos valores do vetor x.

## [1]  1  9 25

Se nomearmos os elementos do vetor, o método abaixo obtém os mesmos valores de x.

##         one        nine twenty five 
##           1           9          25

Cuidado, acessar um elemento fora do tamanho do vetor não gera um erro no R, apenas NA.

## <NA> 
##   NA

A.4.2 Matrizes

Uma matriz é o equivalente à um vetor, porém em duas dimensões. Abaixo, um exemplo de definição de uma matriz com 4 linhas e 3 colunas (total de 12 elementos).

## [1] "matrix" "array"
##    C1 C2 C3
## L1  1  5  9
## L2  2  6 10
## L3  3  7 11
## L4  4  8 12

Por padrão, ao criar uma matrix, o vetor passado como primeiro argumento preenche a matrix por colunas. Para preencher a matrix por linhas, basta especificar o argumento byrow=TRUE

A função dim retorna um vetor de inteiros com as dimensões da variável.

## [1] 4 3
## [1] 4
## [1] 3
## [1] 12

A.4.2.1 Nomeando linhas, columas e dimensões

Da mesma forma para vetores, podemos nomear (e obter os nomes de) linhas e colunas de matrizes.

## [1] "L1" "L2" "L3" "L4"
## [1] "C1" "C2" "C3"
## [[1]]
## [1] "L1" "L2" "L3" "L4"
## 
## [[2]]
## [1] "C1" "C2" "C3"

A.4.2.2 Indexação

A indexação de matrizes funciona de maneira similar à de vetores, com a diferença que agora precisam ser especificadas mais de uma dimensão.

## C2 C3 
##  5  9
## C1 C2 C3 
##  1  5  9
##    C2 C3
## L1  5  9
## L2  6 10
## L3  7 11
## L4  8 12
##    C2 C3
## L1  5  9
## L2  6 10
## L3  7 11
## L4  8 12

A.4.2.3 Combinando matrizes

Considere a seguinte matriz.

A combinação de matrizes pode ser feita através das funções cbind e rbind, que combina matrizes por colunas e por linhas, respectivamentes.

##    C1 C2 C3 C5 C6 C7
## L1  1  5  9  2 10 18
## L2  2  6 10  4 12 20
## L3  3  7 11  6 14 22
## L4  4  8 12  8 16 24
##    C1 C2 C3
## L1  1  5  9
## L2  2  6 10
## L3  3  7 11
## L4  4  8 12
## L5  2 10 18
## L6  4 12 20
## L7  6 14 22
## L8  8 16 24

A.4.2.4 Operações com matrizes

As operações básicas (+, -, *, /) funcionam de elemento a elemento em matrizes, da mesmo forma como em vetores:

##    C1 C2 C3
## L1  3 15 27
## L2  6 18 30
## L3  9 21 33
## L4 12 24 36
##    C1  C2  C3
## L1  2  50 162
## L2  8  72 200
## L3 18  98 242
## L4 32 128 288

Cuidado: as matrizes e vetores devem ter tamanhos compativeis!