Baixe o app para aproveitar ainda mais
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
Compartilhar