Meus rabiscos ao iniciar o curso de R disponível em: http://curso-r.github.io/index.html (basicamente copiei para fixar melhor as ideias, eliminando algumas poucas coisas que julguei desnecessário)

 

Aula 01 – Noções Básicas

Working directory: getwd(), setwd(); paths: apenas \\ ou /

Pacotes: install.packages(“pacote”), library(pacote) (sem áspas)

Valores especiais: inf/-inf (divisão por zero, ou valores da ordem de 10^308), NaN (not a number, operações do tipo 0/0 e log(-1))

Operadores aritméticos menos óbvios: 2^3 ou 2**3 (exponenciação), 4%%2 (resto da divisão), 5%/%2 (resto inteiro da divisão)

Alguns operadores lógicos: x==b (igualdade, cuidade com as imprecisões do double!), x|y (ou), x&y (e), xor(x,y) (retorna TRUE se apenas um for verdadeiro); além de TRUE e FALSE, o R também aceita 1 e 0, especificamente, diferente de zero como TRUE e zero como FALSE

Stringspaste(“Eduardo”, “Falcao”, sep = ” “) (concatenação)

Condicionais: a sintaxe do if-else é a mesma da sintaxe da LP java, porém, o else ou “else if” devem vir na mesma linha da última chave, “}”, correspondente ao if anterior; também existe o ifelse para comparar todos os elementos de vetores (sem precisar fazer um for)

For:  for(iterador in  <sequencia>){}; também pode iterar num vetor, itens <-c(“item1”, “item2”, “item3”), for(item in itens){}; ou for(i in seq_along(itens)){print(itens[i])}. O uso do for é ineficiente. Geralmente, utiliza-se outras funções.

While: sintaxe semelhante à do Java; cont <- 0, while(runif(1)>0.5){ cont <- cont + 1 }

Reciclagem: x <- c(1,5), y<-c(1,10,100,1000), x+y, é igual a [2, 15, 101, 1005] (os valores do vetor menor é reciclado até preencher o vetor maior)

Funções: nome_da_funcao <- function(<parâmetros>) { #faz coisa com os parâmetros, resultado }; nome_da_funcao(param1, param2, …); Funções também são objetos! Aliás, tudo que você atribui com <- vira um objeto no R. Assim, é natural pensar que funções podem receber outras funções como argumento e isso é bem comum.

Parâmetros opcionais: se um parâmetro já tem atribuído a ele um valor na definição da função, ele é um parâmetro opcional, i.e., se você não especificar um valor, aquele o valor definido na função será usado

Parâmetros relativos: parâmetros cujo valor padrão usa o valor de outro parâmetro; histograma <- function(numeros, xlab = “x”, titulo = paste(“Histograma de”, xlab)) {hist(numeros, xlab = xlab, main = titulo)}

Ordem ou nome: se você chamar a função apenas com valores, a ordem dos argumentos será utilizada para determinar qual valor será de qual argumento, se você chamar a função atribuindo os valores aos nomes na assinatura da função, a ordem não servirá de muita coisa

Parâmetro “…”: um número variável de outros parâmetros que geralmente são repassados para outras funções

Funções anônimas: não é definida permanentemente; Ex:

  1. nums <- 1:10
  2. eh_par <- sapply(nums, function(numero) {numero %% 2 == 0})
  3. cbind(nums, eh_par)

 

Variáveis aleatórias: 

  1. dnorm(x, mean = 0, sd = 1, log = FALSE)
  2. pnorm(q, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)
  3. qnorm(p, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)
  4. rnorm(n, mean = 0, sd = 1)

Repare nas 4 letras que antecedem norm nos nomes das funções. Essas letras significam:

  • d (“density”) Densidade da Normal, ou f.d.p da Normal;
  • p (“probability”) Função de distribuição acumulada (f.d.a) da Normal;
  • q (“quantile”) Quantil da Normal;
  • r (“random”) Gera um número vindo de uma Normal.

No lugar de norm, você pode trocar por outra distribuição de probabilidade. A tabela abaixo lista algumas das possibilidades:

Distribuição Apelido
Normal norm
Uniforme unif
Beta beta
Chi Quadrado chisq
Exponencial exp
F de Snedecor f
Gama gamma
Poisson pois

 

Outras funções:

runif(1): retorna um número aleatório entre 0 e 1, o argumento indica a quantidade de números a serem gerados

rnorm(n = 1000, mean = 1.80, sd = 0.1): retorna 1000 valores retirados de uma distribuição normal, com média 1.8 e desvio padrão 0.1

system.time(comando): mede o tempo para executar o comando especificado

identical(vetor1, vetor2): verifica se os dois vetores são iguais

args(nomeDaFunção): exibe os argumentos dessa função

 

Anúncios