Capítulo 2 R básico (continuação)

2.1 Pacotes

Verificar pacotes instalados:

installed.packages()

Instalar pacotes:

install.packages()
Help do comando de instalação de pacote.

Figura 1.1: Help do comando de instalação de pacote.

Salvando os dados:

write.table()
write. ... # outras versões do write.
Help da função `write.table()` e similares.

Figura 2.1: Help da função write.table() e similares.

2.2 Gerando dados

Muitos comandos a seguir podem ser visto na íntegra no Cheatsheets da base R (em português).

Todas as Cheatsheets podem ser acessadas em https://posit.co/resources/cheatsheets/.

Para gerar sequências regulares usa-se o operador dois-pontos (:):

x=1:15
x
str(x)

Veja o uso da função seq() a seguir:

seq(3, 20, 2)
#> [1]  3  5  7  9 11 13 15 17 19

Mas há outras: rep(), sequence() etc.

A função gl() (Generate Factor Levels) possibilita gerar fatores (categorias ou níveis) para um objeto:

gl(n=3,k=2, labels = c("homem","mulher","outro"))
#> [1] homem  homem  mulher mulher outro  outro 
#> Levels: homem mulher outro

Para concatenar objetos usa-se a função c():

c(1,7:9)
#> [1] 1 7 8 9
c(1:5, 10.5, "próximo")
#> [1] "1"       "2"       "3"       "4"       "5"      
#> [6] "10.5"    "próximo"

2.3 Scripts

Menu superior **File** - **New File** - **R Script**.

Figura 2.2: Menu superior File - New File - R Script.

*Script* aberto com algus comandos.

Figura 1.5: Script aberto com algus comandos.

Menu superior **Code**, seção de execução dos comandos do *script*.

Figura 1.6: Menu superior Code, seção de execução dos comandos do script.

2.4 Criando objetos

Vetor: a função vector(), que tem dois argumentos mode e length, cria um vetor que depende do argumento mode especificado: 0 se numérico (tipo double), FALSE se lógico, 0+0i se complexo, ou ʺʺ se caracter. As seguintes funções tem o mesmo efeito: numeric(), logical(), character().

Exemplos:

x=vector(mode="numeric",length = 3); x
#> [1] 0 0 0
x=vector(mode="logical",length = 3); x
#> [1] FALSE FALSE FALSE
x=vector(mode="character",length = 3); x
#> [1] "" "" ""

Fator: a função factor() cria fatores e níveis da variável categórica.

Exemplos:

x=c("a","b","c"); x
#> [1] "a" "b" "c"
x_fatores=factor(x,labels = c("nível 1","nível 2","nível 3")); x_fatores
#> [1] nível 1 nível 2 nível 3
#> Levels: nível 1 nível 2 nível 3
x_fatores=factor(x,labels = c("nível 1","nível 2","nível 3"),ordered = T); x_fatores
#> [1] nível 1 nível 2 nível 3
#> Levels: nível 1 < nível 2 < nível 3
levels(x_fatores)
#> [1] "nível 1" "nível 2" "nível 3"

Matriz: é um vetor com um atributo adicional (dim), que é um vetor de tamanho 2, que define o número de linhas e colunas da matriz. Usa-se a função matrix().

Exemplos:

matrix(5,nrow=2,ncol=3)
#>      [,1] [,2] [,3]
#> [1,]    5    5    5
#> [2,]    5    5    5

usando um script (mais fácil de visualizar a estrutura):

    matrix(1:3,nrow = 2,ncol = 3,
       dimnames = list(
         c("l1","l2"),
         c("c1","c2","c3")))
#>    c1 c2 c3
#> l1  1  3  2
#> l2  2  1  3

Data frame: além da importação de dados (read.table()) pode ser usada a função data.frame().

Exemplos:

x = 1:4; n = 10; M = c(10, 35); y = 2:4
data.frame(x, n)
#>   x  n
#> 1 1 10
#> 2 2 10
#> 3 3 10
#> 4 4 10
data.frame(x, M)
#>   x  M
#> 1 1 10
#> 2 2 35
#> 3 3 10
#> 4 4 35

Lista: criada de maneira similar ao data frame, mas agora se usa a função list(). Qualquer tipo de objeto pode ser usado numa lista.

Exemplos:

lista <- list(x = 1:5, y = c('a', 'b')); lista
#> $x
#> [1] 1 2 3 4 5
#> 
#> $y
#> [1] "a" "b"

Expressão: uma série de caracteres que façam sentido para a linguagem R. Quando um comando é digitado e aceito (dar “enter”), ele é avaliado pelo R e interpretado (executado) se é válido. Pode se construir expressões sem avaliá-las, é pra isso que a função expression() é feita. Ela pode ser avaliada com a função eval().

Exemplos:

x = 3; y = 2.5; z = 1
exp1 = expression(x / (y + exp(z))); exp1
#> expression(x/(y + exp(z)))
eval(exp1)
#> [1] 0.5749019

2.5 Convertendo objetos

Usa-se a função as.algumacoisa() para converter um modo em outro. Alguns comandos: as.integer(), as.numeric(), as.character(), as.logical() etc.

Conversões básicas no R. * Valor faltando (*Not Available*): `is.na()`

Figura 2.3: Conversões básicas no R. * Valor faltando (Not Available): is.na()

2.6 Acessando o valor de um objeto: sistema de indexamento

Pode ser numérico ou lógico. Para acessar, por exemplo, o terceiro elemento de um vetor x, usa-se x[3].

Exemplos:

x <- 1:5; x[3]
#> [1] 3
x[3] = 20; x
#> [1]  1  2 20  4  5
x <- matrix(1:6, 2, 3)
x[,3] = 21:22; x
#>      [,1] [,2] [,3]
#> [1,]    1    3   21
#> [2,]    2    4   22
x[,3]
#> [1] 21 22
x[,3, drop = FALSE]
#>      [,1]
#> [1,]   21
#> [2,]   22

O índice também pode ser usado para suprimir (excluir) linhas ou colunas. Usa-se um valor negativo:

x[, -1]
#>      [,1] [,2]
#> [1,]    3   21
#> [2,]    4   22
x[, -(1:2)]
#> [1] 21 22
x[, -(1:2), drop = FALSE]
#>      [,1]
#> [1,]   21
#> [2,]   22

2.7 Condições (valores lógicos)

Exemplos:

x <- 1:10
x[x >= 5] <- 20; x
#>  [1]  1  2  3  4 20 20 20 20 20 20
x[x == 1] <- 25; x
#>  [1] 25  2  3  4 20 20 20 20 20 20

2.8 Acessando o valor de um objeto pelo nome

Os nomes (names) são as etiquetas dos elementos de um objeto. É geralmente um atributo opcional. Há vários tipos de nomes (names, colnames, rownames, dimnames). Os nomes de um vetor são armazenados no vetor de mesmo tamanho do objeto e podem ser acessados com a função names().

x <- 1:3; names(x)
#> NULL
names(x) <- c("a", "b", "c"); x
#> a b c 
#> 1 2 3
names(x)
#> [1] "a" "b" "c"
x["a"]
#> a 
#> 1

2.9 Acessando a estrutura dos objetos

Acessando a estrutura dos objetos.

Figura 2.4: Acessando a estrutura dos objetos.

2.10 Estruturas de controle

2.10.1 Condicional

if (condição) expressão_verdade

else expressão_falsa

ou

if (condição) expressão_verdade

Condicional `if() ... else ...` e `if() ...`.

Figura 2.5: Condicional if() ... else ... e if() ....

Exemplos:

if (FALSE) "isso não será mostrado"
if (T) "isso será mostrado" # abreviatura para TRUE é T
#> [1] "isso será mostrado"
if (FALSE) "isso não será mostrado" else "isso será mostrado"
#> [1] "isso será mostrado"
x = 10
if (is(x, "numeric")) x/2 else print("x não é numérico")
#> [1] 5
y = c(8, 10, 12, 3, 17)
ifelse(y>=0,sqrt(y),NA)
#> [1] 2.828427 3.162278 3.464102 1.732051 4.123106

2.10.2 Loops

2.10.2.1 Repeat

repeat {expressão}

Para parar a repetição da expressão usa-se o comando break. Para pular para a próxima iteração no loop usa-se o comando next.

Estrutura do comando `repeat{}`.

Figura 2.6: Estrutura do comando repeat{}.

Exemplo:

i=5
repeat {if(i>25) break else {print(i); i=i+5;}}
#> [1] 5
#> [1] 10
#> [1] 15
#> [1] 20
#> [1] 25

2.10.2.2 While

while {condição} expressão

Repete a expressão enquanto a condição de while{} for verdadeira (TRUE). Os comandos next e break também podem ser usados.

Estrutura do comando `while{}`.

Figura 2.7: Estrutura do comando while{}.

Exemplo:

i = 5
while (i <= 25) {print(i); i = i + 5}
#> [1] 5
#> [1] 10
#> [1] 15
#> [1] 20
#> [1] 25

2.10.2.3 For

for {variável in list} expressão

Usa-se for{} para iterar sobre cada elemento da lista (list). Os comandos next e break também podem ser usados.

Estrutura do comando `for{}`.

Figura 2.8: Estrutura do comando for{}.

Exemplo:

for (i in seq(from=5,to=25,by=5)) print(i)
#> [1] 5
#> [1] 10
#> [1] 15
#> [1] 20
#> [1] 25

Propriedades dos loops:

  • Resultados não são apresentados a menos que a função print() seja chamada.

  • A variável var dentro do loop for{} for é alterada.

2.11 Algumas funções estatísticas

Essas funções retornam um único valor (portanto, um vetor de comprimento um), exceto o range que retorna um vetor de comprimento dois e var, cov e cor que podem retornar uma matriz.
Função Descrição
sum(x) Soma dos elementos de x
prod(x) Produto dos elementos de x
max(x) Máximo dos elementos de x
min(x) Mínimo dos elementos de x
which.max(x) Retorna o índice do maior elemento de x
which.min(x) Retorna o índice do menor elemento de x
range(x) Equivalente a c(min(x),max(x))
length(x) Número de elementos de x
mean(x) Média dos elementos de x
median(x) Mediana dos elementos de x
var(x) Variância dos elementos de x (calculado sobre n-1 elementos). Se x é uma matriz ou data frame a variância (ou covariância) da matriz é calculada
cor(x) Correlação dos elementos da matriz x, se for uma matriz ou data frame (1 se x é um vetor)
var(x, y) ou cov(x, y) Variância ou covariância entre x e y, ou entre as colunas de x e as respectivas de y, se são matrizes ou data frames.
cor(x, y) Correlação linear entre x e y ou matriz de correlação, se são matrizes ou data frames

Outras funções mais complexas:

Funções mais complexas.
Função Descrição
round(x, n) Arredonda os elementos de x até n casas decimais
rev(x) Inverte a ordem dos elementos de x
sort(x) Ordena os elementos de x em ordem crescente, para ordenar em ordem decrescente usa-se rev(sort(x))
log(x, base) Calcula o logaritmo de x na base
match(x, y) Retorna um vetor do comprimento de x dos elementos de x que estão em y (NA caso não exista)
which(x == a) Retorna um vetor dos índices de x se a comparação for verdadeira (TRUE) quando x[i] == a
na.omit(x) Suprime as observações com dados faltantes (NA) (suprime a linha correspondente se x é uma matriz ou um data frame)
na.fail(x) Retorna uma mensagem de erro se x contém ao menos um NA
unique(x) Se x é um vetor ou um data freame retorna um objeto similar, mas com os elementos duplicados omitidos
table(x, y) Tabela de contingência de x e y
subset(x, …) Retorna a seleção de x com relação ao critério .... Se x é um data frame a opção selecionada fornece a variável a ser mantida ou eliminada (usa-se o sinal - menos)

Consulta a mais funções pode ser feitas na documentação do R em https://rdrr.io/r/.