Este relatório foi feito utilizando R Markdown. Ele pode ser exportado em .html
ou .pdf
, basta alterar o output:
no cabeçalho entre html_document
e pdf_document
.
cat("Hello world!")
## Hello world!
A função cat
significa “concatenar” e ela vai imprimir o que eu escrevi no console.
É a pasta no meu computador que o R “conversa”, ou seja, que vai buscar os arquivos de entrada e solta os arquivos de saída. É uma boa prática salvar os scripts, os dados, os gráficos (tudo referente à análise) num mesmo diretório.
# Depende do seu computador
# setwd("~/Documents/CursoR")
getwd() # Se eu não souber onde estou
## [1] "/home/fernando/Data/Diversos/GENt/GENt-esalq.github.io/XIII_GMP"
O R é uma grande calculadora.
1+1.3 #Decimal definido com "."
## [1] 2.3
2*3
## [1] 6
2^3
## [1] 8
4/2
## [1] 2
sqrt(4) #raíz quadrada
## [1] 2
log(100, base = 10) #logarítmo na base 10
## [1] 2
log(100) #logarítmo com base neperiana
## [1] 4.60517
# Resolvendo problema
((13+2+1.5)/3) + log(96, base = 4)
## [1] 8.792481
Lembrando que o que vem antes do parênteses é uma função, e, sendo uma função, existe um manual para ela dentro do R, acesse com:
# Pedindo ajuda sobre função do R
?log
# Diferentes formas de criar um vetor
c(1,3,2,5,2)
## [1] 1 3 2 5 2
1:10
## [1] 1 2 3 4 5 6 7 8 9 10
seq(from=0, to=100, by=5)
## [1] 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80
## [18] 85 90 95 100
# ou
seq(0,100,5) # Se você já souber a ordem dos argumentos da função
## [1] 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80
## [18] 85 90 95 100
seq(from=4, to=30, by=3)
## [1] 4 7 10 13 16 19 22 25 28
rep(3:5, 2)
## [1] 3 4 5 3 4 5
# Operações
c(1,4,3,2)*2 # Multiplica todos os elementos por 2
## [1] 2 8 6 4
c(4,2,1,5)+c(5,2,6,1) # Soma 4+5, 2+2, 1+6 e assim por diante
## [1] 9 4 7 6
c(4,2,1,5)*c(5,2,6,1) # Multiplica 4*5, 2*2, 1*6 e assim por diante
## [1] 20 4 6 5
x = c(30.1,30.4,40,30.2,30.6,40.1)
# ou
x <- c(30.1,30.4,40,30.2,30.6,40.1)
y = c(0.26,0.3,0.36,0.24,0.27,0.35)
x*2
## [1] 60.2 60.8 80.0 60.4 61.2 80.2
x + y
## [1] 30.36 30.70 40.36 30.44 30.87 40.45
x*y
## [1] 7.826 9.120 14.400 7.248 8.262 14.035
z <- (x+y)/2
z
## [1] 15.180 15.350 20.180 15.220 15.435 20.225
# Aplicando algumas funções
sum(z) # soma dos valores de z
## [1] 101.59
mean(z) # média
## [1] 16.93167
var(z) # variância
## [1] 6.427507
z[3] # elemento na terceira posição do vetor
## [1] 20.18
z[2:4]
## [1] 15.35 20.18 15.22
str(z)
## num [1:6] 15.2 15.3 20.2 15.2 15.4 ...
clone <- c("GRA02", "URO01", "URO03", "GRA02", "GRA01", "URO01")
clone_fator <- as.factor(clone)
str(clone_fator)
## Factor w/ 4 levels "GRA01","GRA02",..: 2 3 4 2 1 3
levels(clone_fator)
## [1] "GRA01" "GRA02" "URO01" "URO03"
length(clone_fator)
## [1] 6
logico <- x > 40
logico # Os elementos são maiores que 40?
## [1] FALSE FALSE FALSE FALSE FALSE TRUE
# Indica a posição dos TRUE
which(logico) # Obtendo as posiçoes dos elementos TRUE
## [1] 6
x[which(logico)] # Obtendo os números maiores que 40 do vetor x pela posição
## [1] 40.1
(a <- 1:10)
## [1] 1 2 3 4 5 6 7 8 9 10
b <- seq(from = 0.1, to = 1, 0.1)
(b <- b*10)
## [1] 1 2 3 4 5 6 7 8 9 10
a==b # Existe um problema computacional de armazenamento
## [1] TRUE TRUE FALSE TRUE TRUE TRUE FALSE TRUE TRUE TRUE
a==round(b) # Evitar que isso aconteceça arredondando o resultado
## [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
?round # Fiquei com dúvida nessa função
errado <- c(TRUE, "vish", 1) # Não podemos misturar classes num mesmo vetor
errado
## [1] "TRUE" "vish" "1"