O R
pode ser visto como:
- Uma implementação da linguagem de programação
S
; - Ambiente para estatística computacional e gráficos;
O software pode ser obtido em www.r-project.org.
O R
foi criado por Robert Gentleman e Ross Ihaka.
O R
pode ser visto como:
S
;O software pode ser obtido em www.r-project.org.
O R
foi criado por Robert Gentleman e Ross Ihaka.
Existem 2 tipos de objetos:
Programar é escrever funções que transformam argumentos em valores de retorno.
Um bom programa reduz uma grande transformação em uma sequência de transformações menores.
Em R
, é boa prática distribuir um conjunto de funções que realizem uma tarefa específica no formato de pacotes.
logical
;integer
;character
;character
;double/numeric
;NA
, NaN
;O R
possui diversos pacotes para auxiliar na execução de tarefas específicas. Por exemplo:
ggplot2
para gráficos de alta qualidade;plyr
para manipulação de objetos;caret
para unificação de API para técnicas de regressão e classificação;splines
para disponibilização de métodos para splines.A interação com o R
é feita por meio do seu interpretador. Ele recebe comandos, que podem ser digitados individualmente ou interpretados a partir da leitura direta de um arquivo de scripts.
1/sqrt(2*pi)*exp(-3^2/2)
## [1] 0.004431848
dnorm(3)
## [1] 0.004431848
Comparações são operadores binários que retornam um booleano:
3 < 9
## [1] TRUE
3 == 3
## [1] TRUE
3 > 9
## [1] FALSE
Explique:
3*.15
## [1] 0.45
.45
## [1] 0.45
3*.15 == .45
## [1] FALSE
typeof(3)
## [1] "double"
typeof(3L)
## [1] "integer"
typeof("3")
## [1] "character"
typeof(3 == 3)
## [1] "logical"
x1 = 1:10 mean(x=x1)
## [1] 5.5
mean(x2 <- 1:3)
## [1] 2
x1
## [1] 1 2 3 4 5 6 7 8 9 10
x2
## [1] 1 2 3
Ao programar, use nomes informativos de variáveis. Esta é a primeira chave para abstração na programação.
raio = 8 areaCirculo = 2*pi*(raio^2) areaCirculo
## [1] 402.1239
Uma sequência de valores é chamada vetor.
x = c(9, 10, 4, 1) x[3]
## [1] 4
x[4] = 0 x[-3]
## [1] 9 10 0
y = c(-1, 14, -5, 0) x
## [1] 9 10 4 0
y
## [1] -1 14 -5 0
x+y
## [1] 8 24 -1 0
x
## [1] 9 10 4 0
y
## [1] -1 14 -5 0
x < y
## [1] FALSE TRUE FALSE FALSE
x
## [1] 9 10 4 0
x - c(9, 10)
## [1] 0 0 -5 -10
x < 10
## [1] TRUE FALSE TRUE TRUE
x
## [1] 9 10 4 0
y
## [1] -1 14 -5 0
x == y
## [1] FALSE FALSE FALSE TRUE
identical(x, y)
## [1] FALSE
x
## [1] 9 10 4 0
y
## [1] -1 14 -5 0
all.equal(x, y)
## [1] "Mean relative difference: 1"
names(x) = c("Joao", "Maria", "Jose", "Pedro") x
## Joao Maria Jose Pedro ## 9 10 4 0
x["Maria"]
## Maria ## 10
data.frames
Objetos do tipo data.frame
são tabelas de dados cujas colunas podem ser de diferentes tipos (ao contrário de uma matriz, na qual todos os elementos são exatamente do modo).
mydf = data.frame(x=c(9, 4, 10, 0), y=c('masc', 'fem', 'fem', 'masc')) mydf
## x y ## 1 9 masc ## 2 4 fem ## 3 10 fem ## 4 0 masc