# Carregando bibliotecas
library(tidyverse)
library(MASS)
exemplo = 1
exemplo2 <- 1
1 -> exemplo3
A dados do tipo numeric são simplesmente número inteiros ou reais. Os números podem serem escritos normalmente ou com notação científica, utiliando o E (ou e). Além dele há o tipo de dado interger que só registra números inteiros, mas a distinção geralmente não é util.
x <- 4.5 # O . é o separador decimal
class(x)
## [1] "numeric"
is.numeric(x) # Confere se o objeto é um da classe numeric
## [1] TRUE
1E4 # Notação científica
## [1] 10000
Os dados do tipo character são caracteres ou texto. São escritos obrigatoriamente entre aspas (“” ou ’’). Os caracteres podem conter espaços ou acentos.
x <- "floresta" # Sempre entre aspas
class(x)
## [1] "character"
is.character(x) # Confere se o objeto é um da classe character
## [1] TRUE
y <- "Diversidade (Simpson)" # Pode conter espaços ou acentos
y
## [1] "Diversidade (Simpson)"
A dados do tipo logical indicam indicam verdadeiro ou falso. Sendo TRUE ou T, verdadeiro e FALSE ou F, falso. São utilizados para indicar opções onde há apenas duas opções ou como resultado de um teste lógico.
x <- TRUE # Não precisa estar entre aspas, é uma palavra especial no R
class(x)
## [1] "logical"
is.logical(x) # Confere se o objeto é um da classe logical
## [1] TRUE
y <- F # Pode ser abreviada
class(y)
## [1] "logical"
vector('logical',10)
## [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
vector('numeric',10)
## [1] 0 0 0 0 0 0 0 0 0 0
vector('character',10)
## [1] "" "" "" "" "" "" "" "" "" ""
#entre outros
c('a','b')
## [1] "a" "b"
x=1:20;x
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
x = seq(10,40,3);x
## [1] 10 13 16 19 22 25 28 31 34 37 40
#a) Crie um vetor que seja uma sequência numérica que inicie no valor 5 e termine no valor 17 e atribua à variável x
x = 5:17
x2 = seq(5,17,1)
x; x2
## [1] 5 6 7 8 9 10 11 12 13 14 15 16 17
## [1] 5 6 7 8 9 10 11 12 13 14 15 16 17
#b) Crie um vetor que seja uma sequência numérica que inicie no valor 3 e termine no valor 40, incrementando de 2 em 2, e atribua à variável y.
y = seq(3,40,3)
y
## [1] 3 6 9 12 15 18 21 24 27 30 33 36 39
#c) Combine os dois vetores atribuindo-os à variável z.
z <- cbind(x,y) # Junta os vetores em colunas
z2 <- rbind(x,y) # Junta os vetores em Linhas (row)
z; z2
## x y
## [1,] 5 3
## [2,] 6 6
## [3,] 7 9
## [4,] 8 12
## [5,] 9 15
## [6,] 10 18
## [7,] 11 21
## [8,] 12 24
## [9,] 13 27
## [10,] 14 30
## [11,] 15 33
## [12,] 16 36
## [13,] 17 39
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13]
## x 5 6 7 8 9 10 11 12 13 14 15 16 17
## y 3 6 9 12 15 18 21 24 27 30 33 36 39
#d) Crie um vetor que seja um sequência numérica iniciando em 7 e terminando em 38 que possua exatamente 12 elementos com intervalos iguais entre os valores.
help(seq)
seq(7,38, length.out = 12)
## [1] 7.000000 9.818182 12.636364 15.454545 18.272727 21.090909 23.909091
## [8] 26.727273 29.545455 32.363636 35.181818 38.000000
A matriz é uma maneira de representar dados dividindo-os em linhas e colunas.
m = matrix(nrow = 2, ncol = 3)
m
## [,1] [,2] [,3]
## [1,] NA NA NA
## [2,] NA NA NA
matrix(1:6,nrow = 2, ncol = 3)
## [,1] [,2] [,3]
## [1,] 1 3 5
## [2,] 2 4 6
attributes(m)
## $dim
## [1] 2 3
dim(m)
## [1] 2 3
a = 1:4
b = 6:9
cbind(a, b) # Junta os vetores em colunas
## a b
## [1,] 1 6
## [2,] 2 7
## [3,] 3 8
## [4,] 4 9
rbind(a, b) # Junta os vetores em Linhas (row)
## [,1] [,2] [,3] [,4]
## a 1 2 3 4
## b 6 7 8 9
[ ] à Retorna um objeto da mesma classe do original. Pode retornar mais de um elemento
Para vetor
x = c('a', 'd', 'd', 'x', 'b', 'z')
x[2] # retorna o segundo elemento
## [1] "d"
x[1:4] # retona os elementos de 1 a 4
## [1] "a" "d" "d" "x"
x[c(1,3:5)]
## [1] "a" "d" "x" "b"
x > "b"
## [1] FALSE TRUE TRUE TRUE FALSE TRUE
x[x > "b"] # Utiliza vetor lógico para escolher elementos
## [1] "d" "d" "x" "z"
k = x > "b"
sum(k) # Pode ser usado para contar elementos
## [1] 4
Para matrizes
x = matrix(1:8,2,4)
x
## [,1] [,2] [,3] [,4]
## [1,] 1 3 5 7
## [2,] 2 4 6 8
x[2,3] # Escolhe o elemnto na linha 2, coluna 3
## [1] 6
x[1,] # Todos da linha 1
## [1] 1 3 5 7
x[,3] # Todos da coluna 3
## [1] 5 6
head(x, n = 1) # Primeira linha (cabeça)
## [,1] [,2] [,3] [,4]
## [1,] 1 3 5 7
tail(x, n = 1) # Ultima linha (Cauda)
## [,1] [,2] [,3] [,4]
## [2,] 2 4 6 8
#a) Crie uma matriz de 5 linhas por 8 colunas e valores de 1 a 40 e atribua à variável x.
x <- matrix(1:40, 5, 8)
x
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
## [1,] 1 6 11 16 21 26 31 36
## [2,] 2 7 12 17 22 27 32 37
## [3,] 3 8 13 18 23 28 33 38
## [4,] 4 9 14 19 24 29 34 39
## [5,] 5 10 15 20 25 30 35 40
#b) Substitua o elemento da linha 3 e coluna 2 por 55.
x[3,2] <- 55
x
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
## [1,] 1 6 11 16 21 26 31 36
## [2,] 2 7 12 17 22 27 32 37
## [3,] 3 55 13 18 23 28 33 38
## [4,] 4 9 14 19 24 29 34 39
## [5,] 5 10 15 20 25 30 35 40
#c) Substitua todos os elementos da 2 linha pelo valor 9.
x[2,] <- 9
x
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
## [1,] 1 6 11 16 21 26 31 36
## [2,] 9 9 9 9 9 9 9 9
## [3,] 3 55 13 18 23 28 33 38
## [4,] 4 9 14 19 24 29 34 39
## [5,] 5 10 15 20 25 30 35 40
#d) Atribua todos os valores da coluna 7 a um novo vetor y.
y <- x[,7]
y
## [1] 31 9 33 34 35
#e) 5. Crie uma nova matriz x2 (3 x 3) a partir dos três primeiros elementos da 1ª, 3ª e 5ª colunas de x
x2 <- cbind(head(x[,cbind(1,3,5)], n = 3))
x2
## [,1] [,2] [,3]
## [1,] 1 11 21
## [2,] 9 9 9
## [3,] 3 13 23
2+2 # Soma
## [1] 4
8-3 # Subtração
## [1] 5
3*8 # Multiplicação
## [1] 24
8/2 # Divisão
## [1] 4
2^8 # Potências
## [1] 256
(2+4)/7 # Prioridade de solução
## [1] 0.8571429
a = 1:4
b = 5:8
a + b # Soma vetores
## [1] 6 8 10 12
a * b # Multiplica elemento por elemento
## [1] 5 12 21 32
a %% b # Modulo
## [1] 1 2 3 4
t(a) %*% b # Multiplicação de matrizes
## [,1]
## [1,] 70
valor <- 0.83 # Valor de exemplo
valor < 0.9 # Menor (> para maior)
## [1] TRUE
valor <= 0.83 # Menor ou igual (>= para maior ou igual)
## [1] TRUE
valor == 9 # valor exatamente igual
## [1] FALSE
valor != 0.8 # valor diferente de
## [1] TRUE
ex1 <- 1:4
ex1 == 4 # Podem ser aplicados a vetores
## [1] FALSE FALSE FALSE TRUE
0<=valor & valor>=0.1 # Dois criterios aditivos; & -> significa E (AND)
## [1] TRUE
0<=valor | valor<=0.9 # Dois criterios, um ou outro; | -> significa OU (OR)
## [1] TRUE
!valor == 0.83 # Inverter o argumento lógico (Resultado contrário)
## [1] FALSE
ifelse(ex1>4, yes = "M", no = "F") # Teste condicional para categorizar
## [1] "F" "F" "F" "F"
Utilizando as variáveis criadas no exercício anterior, faça:
#a) Some elemento por elemento da coluna 3 de x com y e atribua a um novo vetor z
z <- x[,3] + y
z
## [1] 42 18 46 48 50
#b) Verifique quantos valores em x são maiores que 20.
sum (x>20)
## [1] 17
#c) Some todos os valores maiores que 20 em x.
sum(x[x>20])
## [1] 547
#d) Ache média e desvio padrão dos valores acima de 20 em x
sd(x[x>20])
## [1] 8.247994
mean(x[x>20])
## [1] 32.17647
summary (x[x>20])
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 21.00 26.00 31.00 32.18 36.00 55.00
Elementos de uma lista podem ser de tipos diferentes:
list (1, 'a', 'FALSE', c(4,5,6))
## [[1]]
## [1] 1
##
## [[2]]
## [1] "a"
##
## [[3]]
## [1] "FALSE"
##
## [[4]]
## [1] 4 5 6
Subset [[ ]] à Retorna um objeto de uma lista ou data frame. Não necessariamente uma lista.
x = list (vet=1:4, pi = 3.14)
a= x[1] # Extrai o superior com a lista
a
## $vet
## [1] 1 2 3 4
is.list(a)
## [1] TRUE
a= x[[1]] #Extrai o vetor da lista
a
## [1] 1 2 3 4
is.list(a)
## [1] FALSE
x [["pi"]] # Pode escolher por nome -> vetor
## [1] 3.14
x ["pi"] # Pode escolher por nome -> lista
## $pi
## [1] 3.14
x$pi # Extrai vetor pelo nome
## [1] 3.14
É uma estrutura de dados utilizada para armazenar valores de qualquer tipo de dados
x = data.frame(numero = 1:4, logica = c(T,T,F,F))
x
## numero logica
## 1 1 TRUE
## 2 2 TRUE
## 3 3 FALSE
## 4 4 FALSE
nrow(x) # Número de linhas
## [1] 4
ncol(x) # Número de colunas
## [1] 2
colnames(x) # Lista os nomes das colunas
## [1] "numero" "logica"
Podemos ler dados externos armazenados em arquivos na nossa area de trabalho.
read.table ( ) data = read.table (“arquivo.txt”, header=T, sep=“ ”, row.names = 1, stringsAsFactors = F) * header: se a primeira linha é cabeçalho. * sep: separador – “ “, tab), “,”, “;”, etc. * row.names: qual das colunas representa o nome das linhas * stringAsFactors: se o texto da tabela será considerado uma variável do tipo Factor (as vezes ajuda, as vezes atrapalha). * Várias funções no R são similares ao read.table: read.csv, read.delim, etc.
Podemos escrever os nosso dados em arquivos também write.table (x) write.table (data, ”arquivo.txt”, sep=“, col.names=F, row.4names=T, append=F, quote=F) • Escreve a tabela data no arquivo destino “arquivo.txt” • sep: separador – “ “, tab), “,”, “;”, etc. • row.names: lógico – indica se é para escrever o nome das linhas. • col.names: lógico – indica se é para escrever o nome das colunas. • append: se o arquivo destino já existir, se é pra acrescentar linhas (T) ou sobrescrever o arquivo (F). • quote: escrever strings com aspas (T).
#a) Leia o arquivo “barcodes.txt”, que está separado por tab, sem cabeçalho, sinalizando que o nome das linhas está na 1ª linha do arquivo e que o valor stringAsFactors é falso, atribua à variável barcodes.
barcodes <- read.table("barcodes.txt", sep = "\t", header = T, stringsAsFactors = F)
#b) Crie um vetor de valores lógicos informando quais valores na 1ª coluna são maiores que 10 reads e atribua a uma variável, faça o mesmo para a 4ª coluna, atribuindo a uma outra variável.
col1 = barcodes$bar_01 > 10
col2 = barcodes$bar_04 > 10
#c) A partir dos vetores criados na questão 2, crie dois vetores de valores lógicos: um informando quais miRNAs possuem mais de 10 reads em ambas amostras e outro informando quais miRNAs possuem mais de 10 reads em pelo menos uma amostra
E <- col1 + col2 > 1
ou <- col1 + col2 > 0
# d) Copie para a variável ‘expressao’ os valores de reads de miRNAs da 1ª e 4ª colunas expressos com mais de 10 reads em ambas as amostras.
temp <- data.frame(mirnas = barcodes$mirnas, bar_01 = barcodes$bar_01, bar_04 = barcodes$bar_04) # Criei um data frame com o nome dos mirns, e a coluna 1 e 4 preservando os nomes
expressao <- temp[E,] # Escolhi somente as linhas que atendessem os critérios
expressao
## mirnas bar_01 bar_04
## 35 hsa-mir-660 16 66
## 52 hsa-mir-574 43 305
## 53 hsa-mir-19a 11 181
## 58 hsa-mir-145 453 13399
## 73 hsa-mir-93 30 304
## 100 hsa-mir-21 240 3160
## 107 hsa-mir-23a 45 652
## 108 hsa-mir-23b 58 1022
## 124 hsa-mir-150 40 95
## 130 hsa-mir-215 23 124
## 152 hsa-mir-223 70 1362
## 160 hsa-mir-17 39 792
## 170 hsa-mir-28 12 116
## 178 hsa-mir-195 12 47
## 225 hsa-mir-200a 52 1355
## 235 hsa-mir-484 13 196
## 240 hsa-mir-99a 21 1154
## 258 hsa-mir-29c 359 1478
## 265 hsa-mir-126 14 176
## 267 hsa-mir-140 52 724
## 278 hsa-mir-31 47 214
## 286 hsa-mir-141 22 133
## 287 hsa-mir-342 14 94
## 303 hsa-mir-200b 16 243
## 304 hsa-mir-29a 444 2724
## 305 hsa-let-7g 13 198
## 322 hsa-mir-451 143 1277
## 350 hsa-let-7b 21 1181
## 393 hsa-mir-34a 20 609
## 408 hsa-mir-125a 42 711
## 416 hsa-mir-192 140 858
## 431 hsa-mir-148a 109 257
## 447 hsa-mir-361 13 77
## 449 hsa-mir-15b 30 343
## 506 hsa-mir-3607 33 238
## 512 hsa-mir-199b 21 198
## 513 hsa-mir-191 133 1237
#5) Copie para a variável ‘exp1’ os valores de reads de miRNAs da 1ª e 4ª colunas expresso com mais de 10 reads em pelo menos uma das amostras.
temp <- data.frame(mirnas = barcodes$mirnas, bar_01 = barcodes$bar_01, bar_04 = barcodes$bar_04)
exp1 <- temp[ou,]
exp1
## mirnas bar_01 bar_04
## 1 hsa-mir-22 4 147
## 7 hsa-mir-193b 4 42
## 8 hsa-mir-188 0 20
## 20 hsa-mir-224 0 43
## 21 hsa-mir-26b 3 38
## 29 hsa-mir-590 5 57
## 30 hsa-mir-455 5 134
## 34 hsa-let-7d 1 29
## 35 hsa-mir-660 16 66
## 47 hsa-mir-1246 0 32
## 49 hsa-mir-99b 1 43
## 52 hsa-mir-574 43 305
## 53 hsa-mir-19a 11 181
## 55 hsa-mir-155 1 13
## 58 hsa-mir-145 453 13399
## 73 hsa-mir-93 30 304
## 76 hsa-mir-20b 0 14
## 78 hsa-mir-502 1 25
## 83 hsa-mir-151 6 143
## 90 hsa-mir-429 1 16
## 91 hsa-mir-10a 10 388
## 95 hsa-mir-7-1 1 15
## 99 hsa-mir-222 5 61
## 100 hsa-mir-21 240 3160
## 106 hsa-mir-10b 2 45
## 107 hsa-mir-23a 45 652
## 108 hsa-mir-23b 58 1022
## 122 hsa-mir-92a-2 0 21
## 124 hsa-mir-150 40 95
## 130 hsa-mir-215 23 124
## 146 hsa-mir-23c 2 12
## 149 hsa-let-7e 2 61
## 152 hsa-mir-223 70 1362
## 154 hsa-mir-24-2 0 15
## 159 hsa-mir-193a 3 34
## 160 hsa-mir-17 39 792
## 165 hsa-mir-501 1 17
## 167 hsa-mir-296 0 22
## 170 hsa-mir-28 12 116
## 175 hsa-mir-196a-1 0 12
## 178 hsa-mir-195 12 47
## 179 hsa-mir-107 3 152
## 186 hsa-mir-378 3 55
## 189 hsa-mir-130b 2 35
## 192 hsa-mir-135b 0 66
## 194 hsa-mir-708 1 52
## 198 hsa-mir-200c 7 38
## 203 hsa-mir-324 3 42
## 205 hsa-mir-16-2 0 23
## 209 hsa-mir-375 6 26
## 214 hsa-mir-30e 6 35
## 215 hsa-mir-339 6 91
## 223 hsa-mir-424 2 41
## 225 hsa-mir-200a 52 1355
## 235 hsa-mir-484 13 196
## 240 hsa-mir-99a 21 1154
## 243 hsa-mir-130a 3 98
## 248 hsa-mir-182 4 24
## 258 hsa-mir-29c 359 1478
## 262 hsa-mir-30d 2 95
## 265 hsa-mir-126 14 176
## 267 hsa-mir-140 52 724
## 278 hsa-mir-31 47 214
## 279 hsa-mir-425 8 177
## 282 hsa-mir-30b 1 45
## 286 hsa-mir-141 22 133
## 287 hsa-mir-342 14 94
## 293 hsa-mir-331 5 68
## 301 hsa-mir-1248 1 23
## 303 hsa-mir-200b 16 243
## 304 hsa-mir-29a 444 2724
## 305 hsa-let-7g 13 198
## 312 hsa-mir-221 10 73
## 314 hsa-mir-132 2 19
## 321 hsa-mir-25 9 92
## 322 hsa-mir-451 143 1277
## 330 hsa-mir-142 6 14
## 335 hsa-let-7i 5 126
## 342 hsa-mir-326 1 33
## 344 hsa-mir-345 4 71
## 350 hsa-let-7b 21 1181
## 362 hsa-mir-106b 2 18
## 377 hsa-mir-15a 9 68
## 384 hsa-mir-143 7 383
## 389 hsa-mir-92a-1 1 39
## 391 hsa-mir-320a 0 11
## 393 hsa-mir-34a 20 609
## 396 hsa-let-7c 3 118
## 401 hsa-mir-887 1 13
## 403 hsa-mir-146b 3 24
## 408 hsa-mir-125a 42 711
## 416 hsa-mir-192 140 858
## 420 hsa-mir-409 1 16
## 425 hsa-mir-1306 0 11
## 431 hsa-mir-148a 109 257
## 437 hsa-mir-29b-2 3 13
## 444 hsa-mir-30a 3 17
## 446 hsa-mir-100 10 277
## 447 hsa-mir-361 13 77
## 449 hsa-mir-15b 30 343
## 469 hsa-mir-378c 3 41
## 471 hsa-mir-532 2 89
## 472 hsa-mir-210 2 277
## 480 hsa-mir-4284 0 14
## 483 hsa-mir-27a 3 60
## 486 hsa-mir-27b 4 35
## 489 hsa-mir-362 2 76
## 494 hsa-mir-92b 0 27
## 498 hsa-mir-505 0 16
## 506 hsa-mir-3607 33 238
## 511 hsa-mir-301a 2 26
## 512 hsa-mir-199b 21 198
## 513 hsa-mir-191 133 1237
#6) Escreva em arquivos as variáveis expressao e exp1.
write.table(exp1, file = "exp1.txt", sep = "\t")
write.table(expressao, file = "expressao.txt", sep = "\t")
#1) Leia o arquivo “barcodes.txt”, que está separado por tab, com cabeçalho, sinalizando que o nome das linhas está na 1ª linha do arquivo e que o valor stringAsFactors é falso, atribua à variável barcodes.
nomeada <- read.table("barcodes.txt", header = T, sep = "\t")
barcodes <- read.table("barcodes.txt", header = T, sep = "\t", row.names = 1)
#2) A partir da tabela barcodes crie uma tabela com as 200 primeiras linhas e 5 primeiras colunas.
tab = barcodes[1:200,1:5]
#3) A partir da tabela barcodes crie duas tabelas, uma contendo os miRNAs das linhas ímpares e outra contendo os miRNAs das linhas pares
impar = seq(nrow(barcodes)) %% 2 # Tiro o modulo do indice da linha
b <- barcodes[impar == 1,]
c <- barcodes[impar == 0,]
#4) Crie um vetor de 10 posições em que cada valor seja a soma de cada barcode
colSums(barcodes)
## bar_01 bar_02 bar_03 bar_04 bar_05 bar_06 bar_07 bar_08 bar_09 bar_10
## 3180 246427 14896 42562 42934 33660 618112 58318 191846 50388
#5) Identifique quantos miRNAs estão expressos em todas as amostras
a <- barcodes >= 10
b <- rowSums(a) == 10
c <- barcodes[b,]
#6) Identifique quantos miRNAs possuem expressão maior que 10 reads em pelo menos uma amostra
a <- barcodes >= 10
b <- rowSums(a) > 0
c <- barcodes[b,]
#7) Crie uma nova tabela apenas com reads com expressão maior que 10 reads
#8) Crie uma tabela com os barcodes 1, 4, 6, 7, 9.
a <- barcodes[,c(1,4,6,7,9)]
#9) Crie um vetor de 5 posições em que cada valor seja a soma de cada barcode da questão anterior (utilize o vetor de soma anteriormente criado)
colSums(a)
## bar_01 bar_04 bar_06 bar_07 bar_09
## 3180 42562 33660 618112 191846
#10). Crie dois vetores com as expressões dos miRNAs hsa-miR-29c e hsa-miR-145 para os barcodes selecionados
b <- barcodes[,c(1,4,6,7,9)]
c <- b[c("hsa-mir-145", "hsa-mir-29c"),]
#11) 4. Normalize as expressões desses miRNAs para um milhão. (transforme em expressão relativa e multiplique por um milhão)
sweep(c, 2,colSums(c), "/")
## bar_01 bar_04 bar_06 bar_07 bar_09
## hsa-mir-145 0.5578818 0.90065201 0.9488036 0.5511729 0.8899968
## hsa-mir-29c 0.4421182 0.09934799 0.0511964 0.4488271 0.1100032
Organizar, classificar, descrever e comunicar dados Medidas de tendência central ou de posição
a <- 1:6
mean(a)# Média
## [1] 3.5
median(a) # Mediana
## [1] 3.5
quantile(a) # Quartis
## 0% 25% 50% 75% 100%
## 1.00 2.25 3.50 4.75 6.00
summary(a) # Tudo
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.00 2.25 3.50 3.50 4.75 6.00
# Moda -> Se quiser fazer... boa sorte
# 1) Utilizando os dados pré e pós tratamento, gere dados descritivos a respeito dos conjuntos
summary(anorexia)
## Treat Prewt Postwt
## CBT :29 Min. :70.00 Min. : 71.30
## Cont:26 1st Qu.:79.60 1st Qu.: 79.33
## FT :17 Median :82.30 Median : 84.05
## Mean :82.41 Mean : 85.17
## 3rd Qu.:86.00 3rd Qu.: 91.55
## Max. :94.90 Max. :103.60
# 2) Gere um gráfico boxplot que contenha ambas amostras lado a lado
boxplot(list(Pretratamento = anorexia$Prewt, PosTratamento = anorexia$Postwt))
anorexia %>% ggplot( mapping = aes(x = Treat, y = Prewt ))+
# geom_bar() +
geom_boxplot()+
geom_point()
# 2.1) versão alternativa
a = gather(anorexia, key = "Periodo", value = "Peso", -Treat)
a
## Treat Periodo Peso
## 1 Cont Prewt 80.7
## 2 Cont Prewt 89.4
## 3 Cont Prewt 91.8
## 4 Cont Prewt 74.0
## 5 Cont Prewt 78.1
## 6 Cont Prewt 88.3
## 7 Cont Prewt 87.3
## 8 Cont Prewt 75.1
## 9 Cont Prewt 80.6
## 10 Cont Prewt 78.4
## 11 Cont Prewt 77.6
## 12 Cont Prewt 88.7
## 13 Cont Prewt 81.3
## 14 Cont Prewt 78.1
## 15 Cont Prewt 70.5
## 16 Cont Prewt 77.3
## 17 Cont Prewt 85.2
## 18 Cont Prewt 86.0
## 19 Cont Prewt 84.1
## 20 Cont Prewt 79.7
## 21 Cont Prewt 85.5
## 22 Cont Prewt 84.4
## 23 Cont Prewt 79.6
## 24 Cont Prewt 77.5
## 25 Cont Prewt 72.3
## 26 Cont Prewt 89.0
## 27 CBT Prewt 80.5
## 28 CBT Prewt 84.9
## 29 CBT Prewt 81.5
## 30 CBT Prewt 82.6
## 31 CBT Prewt 79.9
## 32 CBT Prewt 88.7
## 33 CBT Prewt 94.9
## 34 CBT Prewt 76.3
## 35 CBT Prewt 81.0
## 36 CBT Prewt 80.5
## 37 CBT Prewt 85.0
## 38 CBT Prewt 89.2
## 39 CBT Prewt 81.3
## 40 CBT Prewt 76.5
## 41 CBT Prewt 70.0
## 42 CBT Prewt 80.4
## 43 CBT Prewt 83.3
## 44 CBT Prewt 83.0
## 45 CBT Prewt 87.7
## 46 CBT Prewt 84.2
## 47 CBT Prewt 86.4
## 48 CBT Prewt 76.5
## 49 CBT Prewt 80.2
## 50 CBT Prewt 87.8
## 51 CBT Prewt 83.3
## 52 CBT Prewt 79.7
## 53 CBT Prewt 84.5
## 54 CBT Prewt 80.8
## 55 CBT Prewt 87.4
## 56 FT Prewt 83.8
## 57 FT Prewt 83.3
## 58 FT Prewt 86.0
## 59 FT Prewt 82.5
## 60 FT Prewt 86.7
## 61 FT Prewt 79.6
## 62 FT Prewt 76.9
## 63 FT Prewt 94.2
## 64 FT Prewt 73.4
## 65 FT Prewt 80.5
## 66 FT Prewt 81.6
## 67 FT Prewt 82.1
## 68 FT Prewt 77.6
## 69 FT Prewt 83.5
## 70 FT Prewt 89.9
## 71 FT Prewt 86.0
## 72 FT Prewt 87.3
## 73 Cont Postwt 80.2
## 74 Cont Postwt 80.1
## 75 Cont Postwt 86.4
## 76 Cont Postwt 86.3
## 77 Cont Postwt 76.1
## 78 Cont Postwt 78.1
## 79 Cont Postwt 75.1
## 80 Cont Postwt 86.7
## 81 Cont Postwt 73.5
## 82 Cont Postwt 84.6
## 83 Cont Postwt 77.4
## 84 Cont Postwt 79.5
## 85 Cont Postwt 89.6
## 86 Cont Postwt 81.4
## 87 Cont Postwt 81.8
## 88 Cont Postwt 77.3
## 89 Cont Postwt 84.2
## 90 Cont Postwt 75.4
## 91 Cont Postwt 79.5
## 92 Cont Postwt 73.0
## 93 Cont Postwt 88.3
## 94 Cont Postwt 84.7
## 95 Cont Postwt 81.4
## 96 Cont Postwt 81.2
## 97 Cont Postwt 88.2
## 98 Cont Postwt 78.8
## 99 CBT Postwt 82.2
## 100 CBT Postwt 85.6
## 101 CBT Postwt 81.4
## 102 CBT Postwt 81.9
## 103 CBT Postwt 76.4
## 104 CBT Postwt 103.6
## 105 CBT Postwt 98.4
## 106 CBT Postwt 93.4
## 107 CBT Postwt 73.4
## 108 CBT Postwt 82.1
## 109 CBT Postwt 96.7
## 110 CBT Postwt 95.3
## 111 CBT Postwt 82.4
## 112 CBT Postwt 72.5
## 113 CBT Postwt 90.9
## 114 CBT Postwt 71.3
## 115 CBT Postwt 85.4
## 116 CBT Postwt 81.6
## 117 CBT Postwt 89.1
## 118 CBT Postwt 83.9
## 119 CBT Postwt 82.7
## 120 CBT Postwt 75.7
## 121 CBT Postwt 82.6
## 122 CBT Postwt 100.4
## 123 CBT Postwt 85.2
## 124 CBT Postwt 83.6
## 125 CBT Postwt 84.6
## 126 CBT Postwt 96.2
## 127 CBT Postwt 86.7
## 128 FT Postwt 95.2
## 129 FT Postwt 94.3
## 130 FT Postwt 91.5
## 131 FT Postwt 91.9
## 132 FT Postwt 100.3
## 133 FT Postwt 76.7
## 134 FT Postwt 76.8
## 135 FT Postwt 101.6
## 136 FT Postwt 94.9
## 137 FT Postwt 75.2
## 138 FT Postwt 77.8
## 139 FT Postwt 95.5
## 140 FT Postwt 90.7
## 141 FT Postwt 92.5
## 142 FT Postwt 93.8
## 143 FT Postwt 91.7
## 144 FT Postwt 98.0
a$Periodo = factor(a$Periodo, levels = c("Prewt", "Postwt"))
a
## Treat Periodo Peso
## 1 Cont Prewt 80.7
## 2 Cont Prewt 89.4
## 3 Cont Prewt 91.8
## 4 Cont Prewt 74.0
## 5 Cont Prewt 78.1
## 6 Cont Prewt 88.3
## 7 Cont Prewt 87.3
## 8 Cont Prewt 75.1
## 9 Cont Prewt 80.6
## 10 Cont Prewt 78.4
## 11 Cont Prewt 77.6
## 12 Cont Prewt 88.7
## 13 Cont Prewt 81.3
## 14 Cont Prewt 78.1
## 15 Cont Prewt 70.5
## 16 Cont Prewt 77.3
## 17 Cont Prewt 85.2
## 18 Cont Prewt 86.0
## 19 Cont Prewt 84.1
## 20 Cont Prewt 79.7
## 21 Cont Prewt 85.5
## 22 Cont Prewt 84.4
## 23 Cont Prewt 79.6
## 24 Cont Prewt 77.5
## 25 Cont Prewt 72.3
## 26 Cont Prewt 89.0
## 27 CBT Prewt 80.5
## 28 CBT Prewt 84.9
## 29 CBT Prewt 81.5
## 30 CBT Prewt 82.6
## 31 CBT Prewt 79.9
## 32 CBT Prewt 88.7
## 33 CBT Prewt 94.9
## 34 CBT Prewt 76.3
## 35 CBT Prewt 81.0
## 36 CBT Prewt 80.5
## 37 CBT Prewt 85.0
## 38 CBT Prewt 89.2
## 39 CBT Prewt 81.3
## 40 CBT Prewt 76.5
## 41 CBT Prewt 70.0
## 42 CBT Prewt 80.4
## 43 CBT Prewt 83.3
## 44 CBT Prewt 83.0
## 45 CBT Prewt 87.7
## 46 CBT Prewt 84.2
## 47 CBT Prewt 86.4
## 48 CBT Prewt 76.5
## 49 CBT Prewt 80.2
## 50 CBT Prewt 87.8
## 51 CBT Prewt 83.3
## 52 CBT Prewt 79.7
## 53 CBT Prewt 84.5
## 54 CBT Prewt 80.8
## 55 CBT Prewt 87.4
## 56 FT Prewt 83.8
## 57 FT Prewt 83.3
## 58 FT Prewt 86.0
## 59 FT Prewt 82.5
## 60 FT Prewt 86.7
## 61 FT Prewt 79.6
## 62 FT Prewt 76.9
## 63 FT Prewt 94.2
## 64 FT Prewt 73.4
## 65 FT Prewt 80.5
## 66 FT Prewt 81.6
## 67 FT Prewt 82.1
## 68 FT Prewt 77.6
## 69 FT Prewt 83.5
## 70 FT Prewt 89.9
## 71 FT Prewt 86.0
## 72 FT Prewt 87.3
## 73 Cont Postwt 80.2
## 74 Cont Postwt 80.1
## 75 Cont Postwt 86.4
## 76 Cont Postwt 86.3
## 77 Cont Postwt 76.1
## 78 Cont Postwt 78.1
## 79 Cont Postwt 75.1
## 80 Cont Postwt 86.7
## 81 Cont Postwt 73.5
## 82 Cont Postwt 84.6
## 83 Cont Postwt 77.4
## 84 Cont Postwt 79.5
## 85 Cont Postwt 89.6
## 86 Cont Postwt 81.4
## 87 Cont Postwt 81.8
## 88 Cont Postwt 77.3
## 89 Cont Postwt 84.2
## 90 Cont Postwt 75.4
## 91 Cont Postwt 79.5
## 92 Cont Postwt 73.0
## 93 Cont Postwt 88.3
## 94 Cont Postwt 84.7
## 95 Cont Postwt 81.4
## 96 Cont Postwt 81.2
## 97 Cont Postwt 88.2
## 98 Cont Postwt 78.8
## 99 CBT Postwt 82.2
## 100 CBT Postwt 85.6
## 101 CBT Postwt 81.4
## 102 CBT Postwt 81.9
## 103 CBT Postwt 76.4
## 104 CBT Postwt 103.6
## 105 CBT Postwt 98.4
## 106 CBT Postwt 93.4
## 107 CBT Postwt 73.4
## 108 CBT Postwt 82.1
## 109 CBT Postwt 96.7
## 110 CBT Postwt 95.3
## 111 CBT Postwt 82.4
## 112 CBT Postwt 72.5
## 113 CBT Postwt 90.9
## 114 CBT Postwt 71.3
## 115 CBT Postwt 85.4
## 116 CBT Postwt 81.6
## 117 CBT Postwt 89.1
## 118 CBT Postwt 83.9
## 119 CBT Postwt 82.7
## 120 CBT Postwt 75.7
## 121 CBT Postwt 82.6
## 122 CBT Postwt 100.4
## 123 CBT Postwt 85.2
## 124 CBT Postwt 83.6
## 125 CBT Postwt 84.6
## 126 CBT Postwt 96.2
## 127 CBT Postwt 86.7
## 128 FT Postwt 95.2
## 129 FT Postwt 94.3
## 130 FT Postwt 91.5
## 131 FT Postwt 91.9
## 132 FT Postwt 100.3
## 133 FT Postwt 76.7
## 134 FT Postwt 76.8
## 135 FT Postwt 101.6
## 136 FT Postwt 94.9
## 137 FT Postwt 75.2
## 138 FT Postwt 77.8
## 139 FT Postwt 95.5
## 140 FT Postwt 90.7
## 141 FT Postwt 92.5
## 142 FT Postwt 93.8
## 143 FT Postwt 91.7
## 144 FT Postwt 98.0
a %>%
ggplot(mapping = aes (x = Treat, y = Peso))+
geom_boxplot(aes(fill = Periodo), outlier.stroke = ) +
geom_jitter(aes(col = Peso), size =1, width = 0.5)
# 3) Crie um histograma para cada amostra e plote a normal correspondente para comparação
# 4)Crie gráficos quantil-quantil, comparando cada amostra com a normal
par(mfrow =c(2,2))
hist(anorexia$Prewt, probability = T)
curve(dnorm(x, sd = sd(anorexia$Prewt), mean = mean(anorexia$Prewt)), add = T)
qqnorm (anorexia$Prewt)
qqline(anorexia$Prewt)
hist(anorexia$Postwt, probability = T)
curve(dnorm(x, sd = sd(anorexia$Postwt), mean = mean(anorexia$Postwt)), add = T)
qqnorm(anorexia$Postwt)
qqline(anorexia$Postwt)
# 5) Crie gráficos quantil-quantil, comparando cada amostra com a normal
shapiro.test(anorexia$Prewt)
##
## Shapiro-Wilk normality test
##
## data: anorexia$Prewt
## W = 0.99248, p-value = 0.9484
shapiro.test(anorexia$Postwt)
##
## Shapiro-Wilk normality test
##
## data: anorexia$Postwt
## W = 0.9673, p-value = 0.05781
#6)Faça teste de variância entre as amostras
var.test(anorexia$Prewt, anorexia$Postwt)
##
## F test to compare two variances
##
## data: anorexia$Prewt and anorexia$Postwt
## F = 0.41599, num df = 71, denom df = 71, p-value = 0.000288
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
## 0.2602635 0.6648930
## sample estimates:
## ratio of variances
## 0.4159896
#7)Verifique se as amostras diferem significativamente
t.test(anorexia$Prewt, anorexia$Postwt, paired = T)
##
## Paired t-test
##
## data: anorexia$Prewt and anorexia$Postwt
## t = -2.9376, df = 71, p-value = 0.004458
## alternative hypothesis: true mean difference is not equal to 0
## 95 percent confidence interval:
## -4.6399424 -0.8878354
## sample estimates:
## mean difference
## -2.763889
par(mfrow = c(1,1))
x = seq(0,25, by = 0.1)
plot(x, dchisq(x, 1), type = "l", ylim = c(0,0.4))
for (i in 2:6) {
curve(dchisq(x,i), from = 0, to=25, add = T, col = i)
}
par(mfrow = c(1,1))
x = seq(0,25, by = 0.1)
y = dchisq(x,5)
plot(x,y,type = "l")
abline(v = qchisq(0.95,5), col="red")
abline(v=15.14)
Os dados são classificados em tabelas simples de uma entrada apenas * gl = no de categorias -1 Exemplo - Você joga um dado 600 vezes e os valores obtidos foram de acordo com a tabela abaixo. Com uma certeza de 95%, o que vc conclui sobre o dado:
dado = c(115,120,82,86,112,85)
chisq.test(dado)
##
## Chi-squared test for given probabilities
##
## data: dado
## X-squared = 15.14, df = 5, p-value = 0.009781
qchisq(0.95, 2)
## [1] 5.991465
par(mfrow = c(1,1))
x = seq(0,25, by = 0.1)
y = dchisq(x,5)
plot(x,y,type = "l")
abline(v = qchisq(0.95,5), col="red")
abline(v=15.14)
# b) Teste de comparação entre populações: Compara 2+ populações # c)
Teste de associação: testar correlação entre variaveis categóriccas
#exercicio t = read.delim(“genotipo.txt”, sep = “, stringsAsFactors = T) t\(genotype=NA t\)genotype[t\(genotipo == 11] = "Wt/Wt" t\)genotype[t\(genotipo == 12] = "Alt/Wt" t\)genotype[t$genotipo == 22] =”Alt/Alt”
tab = xtabs(~pop + genotype, t) tab mosaicplot(tab, color = 1:3) chisq.test(tab)
p = data.frame(sucesso = c(rep(1,3), rep(0,32), rep(1,15), rep(0,50))
x <- seq(0, 20, by = 0.1) # Define a range of x values plot(x, dchisq(x, df = 1), type = “l”, ylim = c(0, 0.5), ylab = “Density”, xlab = “x”, main = “Chi-Squared Distribution with df = 1 to 6”) for (df in 2:6) { lines(x, dchisq(x, df = df), col = df) } legend(“topright”, legend = paste(“df =”, 1:6), col = 1:6, lty = 1)
ifelse(ex1>4, yes = "M", no = "F") # Teste condicional para categorizar valores
## [1] "F" "F" "F" "F"
t.test(anorexia$Prewt, anorexia$Postwt, paired = T)
##
## Paired t-test
##
## data: anorexia$Prewt and anorexia$Postwt
## t = -2.9376, df = 71, p-value = 0.004458
## alternative hypothesis: true mean difference is not equal to 0
## 95 percent confidence interval:
## -4.6399424 -0.8878354
## sample estimates:
## mean difference
## -2.763889
Avalia se existe associação entre duas variáveis quantitativas
###Coeficiente de Pearson * Valor numérico, e portanto, comparável * Adimensional (Como não tem unidades, pode fazer comparação entre si - mesmo que os objetos estudados sejam incomparaveis) * Varia de +1 a -1
H₀: Não existe correlação entre as amostras (r =0) Não significante -> Não é possivel afirmar que apresenta correlação (mesmo que tenha níveis altos)
Spearman * Não exige distribuição Normal ##