Você está na página 1de 25

UNIVERSIDADE FEDERAL DO PARÁ

Núcleo de Pesquisas em Oncologia

Bioestatística em R

Prof. Dr. Fabiano Cordeiro Moreira


Conteúdo
• Introdução ao R
• Ambiente do Rstudio
• Estrutura de dados: vetor, matriz, lista, data frame
• Leitura e escrita de tabelas
• Estatística Descritiva
• Média, mediana, moda
• Desvio Padrão
• Quartil
• Plot, barplot, histograma
Conteúdo
• Distribuição Normal
• Testes de Normalidade
• Teste de Hipótese
• Teste t
• Teste t Pareado
• Correlação e Regressão
• Qui-Quadrado
• Anova
• Tukey
Introdução ao R
• Atribuição
• ‘<-’ ou ‘=‘
• Tipo de Dados (objetos)
• numeric
• character
• integer
• logical
• Operador “:”

• help( )

• as.double ( ) / as.character( ) ...


• is.double( ) / is.character ( ) ...
Vetor

• vector( )
> x = vector('numeric', 10)
> x
[1] 0 0 0 0 0 0 0 0 0 0

• Concatenar: c ( )
> c('a', 'b')
[1] "a" "b »

• Outras formas:
> x = 1:20
> x = seq (10, 30, 3)
Exercício
1. Crie um vetor que seja uma sequência numérica que inicie
no valor 5 e termine no valor 15 e atribua à variável x.

2. 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.

3. Combine os dois vetores atribuindo-os à variável z.

4. 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.
• Se necessário, use help( )
Matriz
> m = matrix(nrow=2, ncol=3)
> m
[,1] [,2] [,3]
[1,] NA NA NA
[2,] NA NA NA
> attributes(m)
$dim
[1] 2 3

> dim(m)
[1] 2 3
> m = matrix(1:6,nrow=2, ncol=3)
> m
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
Matriz
> a = 1:4
> b = 6:9
> c = cbind(a,b)
> c
a b
[1,] 1 6
[2,] 2 7
[3,] 3 8
[4,] 4 9
> c = rbind(a,b)
> c
[,1] [,2] [,3] [,4]
a 1 2 3 4
b 6 7 8 9
Subset - vetor
• [ ] à Retorna um objeto da mesma classe do original.
Pode retornar mais de um elemento.

> x = c('a', 'd', 'd', 'x', 'b', 'z')


> x[2]
[1] "d"
> x[1:4]
[1] "a" "d" "d" "x”
> x[c(1,3:5)]
[1] "a" "d" "x" "b"
Subset - vetor
• [ ] à Retorna um objeto da mesma classe do original.
Pode retornar mais de um elemento.

> x[x > "b"]


[1] "d" "d" "x" "z"
> k = x > 'b'
> k
[1] FALSE TRUE TRUE TRUE FALSE TRUE
> x[k]
[1] "d" "d" "x" "z"
> sum(k)
[1] 4
Subset - Matriz
> x = matrix (1:8,2,4)
> x
[,1] [,2] [,3] [,4]
[1,] 1 3 5 7
[2,] 2 4 6 8
> x[2,3]
[1] 6
> x[1,]
[1] 1 3 5 7
> x[,3]
[1] 5 6

• head ( )
• tail ( )
Exercício
1. Crie uma matriz de 5 linhas por 8 colunas e valores de
1 a 40 e atribua à variável x.

2. Substitua o elemento da linha 3 e coluna 2 por 55.

3. Substitua todos os elementos da 2 linha pelo valor 9.

4. Atribua todos os valores da coluna 7 a um novo vetor y.

5. Crie uma nova matriz x2 (3 x 3) a partir dos três


primeiros elementos da 1ª, 3ª e 5ª colunas de x.
Operações com vetores
> x = 1:4
> y = 5:8
> x + y
[1] 6 8 10 12
> x > 2
[1] FALSE FALSE TRUE TRUE
> x[x > 2]
[1] 3 4
> y == 7
[1] FALSE FALSE TRUE FALSE

> x * y #multiplica elemento por elemento


[1] 5 12 21 32
> t(x) %*% y #multiplicação de matrizes
[,1]
[1,] 70
Exercício
• Utilizando as variáveis criadas no exercício anterior, faça:

1. Some elemento por elemento da coluna 3 de x com y e


atribua a um novo vetor z

2. Verifique quantos valores em x são maiores que 20.

3. Some todos os valores maiores que 20 em x.

4. Ache média e desvio padrão dos valores acima de 20


em x.
List
• Elementos de uma lista podem ser de tipos diferentes:
> x = list (1, 'a', 'FALSE', c(4,5,6))
> x
[[1]]
[1] 1

[[2]]
[1] "a"

[[3]]
[1] "FALSE"

[[4]]
[1] 4 5 6
Subset - lista
• [[ ]] à Retorna um objeto de uma lista ou data frame. Não necessariamente
uma lista.
> x = list (vet=1:4, pi = 3.14)
> x
$vet
[1] 1 2 3 4

$pi
[1] 3.14

> a = x[1]
> a
$vet
[1] 1 2 3 4

> is.list(a)
[1] TRUE
> a = x[[1]]
> is.list(a)
[1] FALSE
Subset - lista
> x$pi
[1] 3.14
> x[["pi"]]
[1] 3.14
> x["pi"]
$pi
[1] 3.14
> is.list(x$pi)
[1] FALSE
> is.list(x[["pi"]])
[1] FALSE
> is.list(x["pi"])
[1] TRUE
Data Frame
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)
[1] 4
> ncol(x)
[1] 2
> colnames(x)
[1] ”numero" "logica"
Data Frame
• read.table ( )
data = read.table (“arquivo.txt”, header=T, sep=“ ”,
row.names = 1, stringsAsFactors = F)

• header: se a primeira linha é cabeçalho.


• sep: separador – “ “, \t (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.
Data Frame
• write.table (x)
write.table (data, ”arquivo.txt", sep="\t",
col.names=F, row.names=T, append=F, quote=F)

• Escreve a tabela data no arquivo destino “arquivo.txt”


• sep: separador – “ “, \t (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).
Exercício
1. 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.

2. 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.

3. 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.
Exercício

4. 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.

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.

6. Escreva em arquivos as variáveis expressao e exp1.


Exercício I
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.

2. A partir da tabela barcodes crie uma tabela com as 200


primeiras linhas e 5 primeiras colunas.

3. A partir da tabela barcodes crie duas tabelas, uma


contendo os miRNAs das linhas ímpares e outra
contendo os miRNAs das linhas pares
Exercício II
1. Crie um vetor de 10 posições em que cada valor seja a
soma de cada barcode

2. Identifique quantos miRNAs estão expressos em todas


as amostras

3. Identifique quantos miRNAs possuem expressão maior


que 10 reads em pelo menos uma amostra

4. Crie uma nova tabela apenas com reads com


expressão maior que 10 reads
Exercício III
1. Crie uma tabela com os barcodes 1, 4, 6, 7, 9.

2. 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)

3. Crie dois vetores com as expressões dos miRNAs hsa-


miR-29c e hsa-miR-145 para os barcodes selecionados

4. Normalize as expressões desses miRNAs para um


milhão. (transforme em expressão relativa e multiplique
por um milhão)

Você também pode gostar