Buscar

ANOTAÇOES DAS AULAS DE R STUDIO - BIOESTATISTICA

Prévia do material em texto

Anotações das aulas de R Studio 
Aula 2 
 Comandos Básicos 
#Entradas de dados 
 
#Indicar o diretório 
setwd("c:/R") 
 
#Mudar o diretório 
getwd() 
 
A planilha de dados que está no Excel deve ser salva no modo testo (DS-Dos), para que 
possamos usar esses dados no R. 
 
x=read.table(file="turtles_2.txt",header=T) 
x 
names(x) 
 turtles_2.txt é o nome do arquivo utilizado 
#Arvivos da internet 
 
y=read.table(file="http://dl.dropbox.com/u/36531552/anova.txt",header=T) 
y 
names(y) 
 
#Outra forma de encontrar um arquivo 
alunos=read.table(file=file.choose()) 
 
 
 
 
 
 
 Matrizes 
#Criar um vetor com a sequência 1 a 6 
v<-(1:6) 
 
#Criar uma matriz com duas linhas e tres colunas 
matriz1<-matrix(data=v,nrow=2,ncol=3) 
matriz1 
 
matriz2<-matrix(v,2,3,byrow = T) #byrow é para distribuir os dados por linhas 
matriz2 
 
#Adicionar linhas ou colunas (comandos rbind e cbind) 
matriz3<-matrix(c(1:9),3,3) # criou outro objeto , uma sequencia de 1 a 9 - c(1:9) 
#coluna 
matriz3<-cbind(matriz3,c(10,11,12)) 
#linha 
matriz3<-rbind(matriz3,c(4,3,2,1)) 
 
#OBS: a ordem dos comandos não irá influenciar! 
 
# Operação com Matrizes 
 
# Transpor os dados 
# Calcula a transposta de uma matriz 
t(matriz3) 
 
 GRÁFICOS 
#livro de gráficos no r = R graphics Cookbook 
 
#Principais gráficos 
 
#Barras 
 
x<-1:100 
barplot(x) 
barplot(sample(x,10)) 
#sample é uma amostra aleatória 
#(x,10) de dez valores de 0 a 100 
 
#Setores (gráficos em pizzas) 
 
pie(c(1,5,7,10)) 
 
#Dispersão 
 
y<-c(110,120,90,70,50,80,40,40,50,30) 
x<-1:length(y) #length = comprimento 
plot(x,y) 
 
#Formatação dos gráficos 
 
plot(x,y,type="p") #ponto 
plot(x,y,type="l") #linha 
plot(x,y,type="b") #pontos e linhas 
plot(x,y,type="n") #vazio 
 
#Adicionar rótulo às variaveis 
 
plot(x,y,xlab="variavel x",ylab="variavel y") 
 
#alterar os símbolos 
plot(x,y,pch=11) #varia entre 1 e 25 simbolos 
plot(rep(0,25),1:25,pch=1:25) 
#inserir títulos ao grafico 
plot(x,y,main="titulo do grafico") 
 
#adicionar linha 
plot(x,y) 
abline(h=mean(y)) 
abline(h=mean(y),v=mean(x)) 
 
#h = horizontal e v= vertical 
 
#Alterar a cor 
plot(x,y,col="turquoise4") 
plot(x,y,col=554) 
#para saber quais cores temos no R 
colours() 
 
#Adicionar pontos ao grafico 
plot(x,y) 
v<-c(3,4,6,8,9) 
w<-c(80,50,60,60,70) 
points(v,w,col="red") 
 
#Inserir textos no meio do gráfico 
plot(1:10,1:10) 
#onde quero inserir esse texto 
text(2,7,"nome") 
plot(1:10,1:10) 
text(c(2,3),c(8,6),c("nome","sobrenome")) 
 
#Colocar o texto indicando com o mouse 
text(locator(1),"texto") 
 
# Para mais de um texto 
text(locator(3),c("texto1","texto2","texto3")) 
 
 
#Sobrepor graficos 
 
x<-c(2,6,5,4,7) 
y<-c(7,2,4,8,9) 
v<-c(9,8,4,2,5) 
w<-c(4,1,2,6,7) 
 
#OBS: Atenção para a identificação das variaveis X e Y !!! 
 
#Plotar um grafico 
plot(x,y,xlim=c(0,10),ylim=c(0,10),xlab="x e v",ylab="y e w") 
#lim é limite, é o taman ho que eu qro para o objeto 
 
par(new=T) # comando para sobrepor/parear graficos 
 
#Plotar o gráfico que será sobreposto 
 
plot(v,w,col="red",xlim=c(0,10),ylim=c(0,10),xlab="",ylab="") 
 
#inserir um novo eixo 
plot(x,y) 
par(new=T) 
plot(x,y,pch=16) 
axis(4) 
#axis é o comando para inserir o eixo 
#(4) quarto eixo do grafico 
 
#Inserindo retângulos nos gráfico 
plot(x,y) 
rect(3.5,9,4.5,7) #rect para por retângulo 
 
#Dividir janela dos gráficos 
par(mfrow=c(1,2)) # uma linha e duas colunas 
plot(1) 
plot(2) 
 
par(mfrow=c(2,2)) #duas linhas e duas colunas 
plot(1) 
plot(2) 
plot(3) 
plot(4) 
 
É importante desfazer o comando anterior para que os próximos gráficos apareçam por 
inteiros ... 
#para tirar esse comando 
par(mfrow=c(1,1)) 
 
#Gráficos com variaveis categoricas 
 
sexo<-c(rep("macho",5),rep("femea",5)) 
 #rep é para repetir. Nesse caso estou pedindo para repetir cinco vezes a palavra macho e 
cinco vezes a palavra femea 
peso<-c(110,120,90,70,50,80,40,40,50,30) 
plot(sexo,peso) #erro 
 
#Ha gráficos específicos para dados categóricos 
#é preciso dizer para o R que sexo é uma variável categórica 
factor(sexo) 
plot(factor(sexo),peso) 
sexo<-factor(sexo) 
plot(sexo,peso) 
 
#Gerar gráficos em fita 
stripchart(peso~sexo) 
stripchart(peso~sexo,vertical=T) 
 
#como indicar os locais onde eu quero por as fitas 
stripchart(peso~sexo,vertical=T,at=c(1.3,1.7)) 
 
#para separar os pontos que são iguais 
stripchart(peso~sexo,vertical=T,at=c(1.3,1.7),method="stack") 
 
#Colocar o ponto em uma distancia igual a um 
stripchart(peso~sexo,vertical=T,at=c(1.3,1.7),method="stack",offset=1) 
x<-c(1,2,3,4,5,6,7,8,9,10) 
y<-c(2,5,4,5,7,7,9,8,8,11) 
plot(x,y,xlab="Eixo x ",ylab="Eixo y") 
title("titulo vai aqui /n e o note a acentuação!!!") /n é pra quebrar o textConnection 
plot(x,y) 
plot(x,y,col="blue") 
plot(x,y,col="blue",xlim=c(0,15),ylim=c(0,12),xlab="profundidade",ylab="salinidade",pch=16) 
 
#Graficos de barras 
Faça uma matriz para poder fazer o gráfico de barras. 
m=matrix(c(1,4,3,2,5,7),2,3) 
m 
barplot(m) #tipo de gráfico padrão mas n é o q a gente mais usa 
Para colocar uma barra ao lado da outra. 
barplot(m,beside = T) #usar esse tipo de gráfico! 
 
 
#colocar espaço entre as barras 
#.2 é igual à 0.2 
 
 
barplot(m,beside = T,space =c (.2,2),col=c("red","blue"),xlab="experimentos",ylab="valores") 
 
 
#Crindo um outro objeto com certas diferenças... 
mat=matrix(c(1,4,3,2,5,7),3,2) 
mat 
#rownames é para colocar nomes nas linhas dentro dos [] 
rownames(mat)=c("Ativa","Sedentária","Total") 
mat 
#colnames é para colocar nomes nas colunas 
colnames(mat)=c("Normal","Sobrepeso") 
mat 
 
 
#grafico de barras... 
#barplot(t(mat) ..esse t é para transpor a matriz 
barplot(t(mat),beside = T,space = 
c(.2,2),col=c("red","blue"),legend=c("Normal","Sobrepeso"),ylim=c(0,15),xlab = 
"experimentos",ylab = "valores") 
 
 
#Gráfico de Ramo e folhas 
#É uma espécie de gráfico de barras.. 
x<-
c(117,111,134,133,112,118,113,96,118,112,93,97,102,103,104,107,108,109,110,111,112,113,1
15,116,117,118,119,120,121,122,123,123,125,127,127,128,128,129,130,132,134,135,135,136,
141,143,144,147,152) 
 
x 
sort(x) #comando para ordenar os números de forma crescente 
stem(x) 
#se assemelha a um histograma 
 
#Histograma de frequência 
 
dados<-c(25,27,18,16,21,22,21,20,18,23,27,21,19,20,21,16) 
sort(dados) 
 
 
hist(dados,nc=6,right = F,main = "Histograma",xlab = "tempo(em minutos)",ylab = 
"frequencia",col = "pink") 
#nc é o numero de colunas 
#right =F é para q o R não acumule os dados à direta 
#Algumas variações ... 
hist(dados,breaks=c(15,20,25,30),right = F,main = "Histograma",xlab="tempo(em 
minutos)",ylab = "frequencia",col="pink") 
#breaks é o comando onde eu indico para o R onde eu quero que as colunas quebrem. 
range(dados) 
 
 
#Para ver quais são os valores dentro de cada intervalo, nesse caso os intervalos são 
16,18,20,22,24,26,28.(frequencia) 
table(cut(dados,breaks = c(16,18,20,22,24,26,28),right = F)) 
#cut = cortando 
 
 
#Serie temporal 
 
 
#entrada direta 
mat=matrix(c(15,25,48,50,76,100,120,180,200,220,240,250,30,45,55,80,97,85,100,150,175,19
0,200,210),12,2) #12 linhas e 2 colunas! 
mat 
colnames(mat)=c("Area A","Area B") 
rownames(mat)=c(1:12) 
mat 
ts.plot(mat,xlab="meses",ylab="produção",lty=c(1:2),col=c("red","blue")) 
#Onde "ts.plot" é o comando do grafico e "lty=c(1:2)" é o tipo de linha no eixo y (tipo de linha 
para a coluna 1:tipo de linha para a coluna 2) 
 
 
#Medidas de localização 
#media , mediana, moda, quartis 
 
#media 
x<-c(5,8,2,4,1,9,7,4) 
sum(x) 
length(x) 
mean(x) 
x<-c(5,8,2,4,1,9,7,4) 
y<-c(1,1,1,1,2,2,2,2) 
tapply(x,y,mean) 
#comando associa os dois conjuntos, divide os conjuntos em dois. Nesse caso, o comando faz a 
media dos valores laranjas dos dois conjuntos, e a media dos valores roxos dosdois 
conjuntos. 
Resultado 
> y<-c(1,1,1,1,2,2,2,2) 
> tapply(x,y,mean) 
 1 2 
4.75 5.25 
 
#mediana 
k<-c(1,3,0,0,2,4,1,2,5) 
sort(k) 
median(k) #usar quando a media n representa o todo 
 
 
#variancia 
var(x) 
 
 
z<-c(1,1,1,1,1,1,1,1) 
var(z) 
 
 
w<-c(1,1,1,1,1,1,1,50) 
var(w) 
 
# grafico 
x<-c(5,8,2,4,1,9,7,4,3,7) 
mean(x) 
plot(x) 
plot(x,ylim=c(0,10),ylab = "valores",xlab = "ordem de entrada") 
abline(mean(x),0,col="red") 
for(i in 1:10) 
lines(c(i,i),c(mean(x),x[i]),col="pink") 
length(x) 
 
 
#calculo do desvio padrão 
var(x) 
 
 
desvpad<-sqrt(var(x)) #sqrt = raiz quadrada 
desvpad 
 
 
#comando mais facil: 
sd(x) 
 
#calculo de amplitude 
#amplitude -> o maior valor menos o menor valor 
z<-c(2,3,5,4,6,2,3) 
min(z) 
max(z) 
at<-max(z)-min(z) 
at 
range(z) # mostra qual é o valor max e qual é o valor min 
 
#Medidas separatrizes 
x<-c(5,8,2,4,1,9,7,4,3,7) 
summary(x) #resumo dos principais valores 
A importância de se saber a media : quando a media é mto diferente da media , 
possivelmente o conj de dados não tem uma distribuição normal 
 
#CRIANDO FUNÇÕES NO R 
As chaves determinam onde começa e termina a função 
#Algoritmo se assemelha à uma receita culinária 
#tem duas formar básicas 
#1ª em forma de sequencia 
#2ª em condicionais (mais complexo, acrescenta uma condicionante) 
 
 
#criando um objeto do tipo função 
#função: calculo_media 
g1,g2,media:real 
Inicio 
leia(g1,g2) 
media<-(g1,g2)/2 
#inserindo condicionante 
Se(media=7) 
Então 
Escreva("Aprovado") 
SE não 
Escreva("reprovado") 
Fim 
 
 
#execuções condicionais 
x<-6 
y<-4 
 
if(x==6 & y>5) # se o x é igual a 6 e y maior que 5 
 # colocar dois sinais de igual é para o R nao pensar q qremos criar um objeto e sim dizer q x é 
igual a 6 
print("verdadeiro") else print("falso") #.. se for plote verdadeiro, se não plote falso 
 
 
#execuções circulares 
#faz analises varias vezes 
for(i in 1:10) 
{print(i*i)} 
 
 
media_final<-function(x,y) 
{nf<-(x+y)/2 
print(nf) 
if(nf>=7) print ("aprovado") 
else print ("reprovado")} 
g1<-6 
g2<-4 
media_final(g1,g2) 
#Arrendondamento 
floor(5.7) #pra baixo 
ceiling(5.7) #pra cima 
rounded<-function(x) 
{floor(x+0.5)} 
rounded(5.7) 
rounded(5.4) 
 
DISTRIBUIÇÃO DE PROBABILIDADE 
Exemplo 
Seja x uma variável aleatória com distribuição normal com mean=10 e var=25. Calcule as 
seguintes probabilidades: faça o desenho pra facilitar !!! :) 
P[x_<6] 
pnorm(6,m=10,sd=5) 
[1] 0.2118554 = 21,2% 
P[x<6] 
pnorm(5,m=10,sd=5) 
[1] 0.1586553 = 15,9% 
P[x>2] 
1-pnorm(3,m=10,sd=5) 
[1] 0.9192433 = 92% 
 
P[x_>2] 
1-pnorm(2,10,5) 
[1] 0.9452007 = 94,5% 
 
P[3< x_<8] 
pnorm(8,10,5)-pnorm(4,10,5) 
[1] 0.2295086 = 23% 
P[10_< x_< 15] 
Pnorm(10,10,5)-pnorm(15,10,5) 
[1] 0.3413447 = 34,1% 
#Teorema central do limite

Continue navegando