R
Este material é um auxílio de consulta rápida, o conhecimento aqui
apresentado deve ser fundamentado pelas atividades de aula e principalmente
pelas bibliografias fornecidas. Cada disciplina demanda parte do
conhecimento aqui resumido, devendo o aluno estar apto a distingui-la.
> x
[1] 1 2 3 4 5
> a <- x>3
> a
[1] FALSE FALSE FALSE TRUE
5.4) Informações sobre valores nulos estatisticamente, NA=valor faltando.
NaN=não é numero.
1.1) Inicie seu trabalho sempre em uma pasta nova e automaticamente o r salva os
dados e historico dos comandos - se ao sair vc salvar o workspace.
> y<-c(1:3,NA,NaN)
> y
[1]
1
2
3 NA NaN
> is.na(y)
[1] FALSE FALSE FALSE TRUE
> is.nan(y)
[1] FALSE FALSE FALSE FALSE
1.2) Para acessar o octave via terminal linux digite:
5.5) Transformar vetor em matriz
1) Introdução
$ R
> options(editor='gedit')
> d<-1:6
> d
[1] 1 2 3 4 5 6
> x<-matrix(x,3,2)
[,1] [,2]
[1,]
1
4
[2,]
2
5
[3,]
3
6
> x
[,1] [,2]
[1,]
7
7
[2,]
2
5
[3,]
3
6
1.7) Abre editor de dados ou funções, depende do tipo de objeto
5.6) Obter tamanho do vetor
1.3) Para acessar ajuda de qualquer função, digite “?funcao”.
> ?sum
1.4) Listar os objetos usadas no momento
> ls()
1.5) Apague os objetos desnecessários
> rm(x,y)
1.6) Configurar editor de funções e dados
> fix(objeto)
1.8) feche o programa.
> q()
#tecle 'y' para salvar os comandos e dados digitados na tela
1.9) instalação de pacotes. Obtenha os pacotes em: http://cran.r-project.org/
> install.packages('tseries_0.10-26.tar.gz')
2.1) Adotamos uma letra minúscula como prefixo do nome da variável para indicar
seu tipo.
enumero <- 1.123 # um escalar inteiro ou decimal.
ttexto <- “texto”
vvetor <- c(1,2,3,4,5,6) #vetor nao tem prefixo
dfdados <- data.frame(x=c(1,2),y=c(3,4))# para dados tipo
dataframe
ldados <- list(nome1=valor1,..,nomeN=valorN)# dados tipo lista
> length(c(10,20,NA))
[1] 3
> length(na.omit(c(10,20,NA)))
[1] 2
6) Objeto: Data Frames
> dados <- data.frame(x=1:5,y=2*1:5)
> dados
x y
1
1 2
2
2 4
3
3 6
4
4 8
5
5 10
6.2) Acessando a um item do dataframe
> dados$x
[1] 1 2
3
4
5
> names(dados)
[1] 'x' 'y'
3.1) Operações básicas. “+” Soma; “-” Subtração; “*” Multiplicação; “/” Divisão;
“^” Potenciação; “%%” resto da divisão; “%/%” quociente da divisao
3.2) Operações matemáticas. sin(x); cos(x); tan(x); asin(x);
acos(x); atan(x); exp(x); logaritmo na base e: log(x); logaritmo na
base 10: log10(x); valor absoluto: abs(x); menor numero inteiro (não
menor que o passado como parâmetro): ceil(x); maior numero inteiro (nao
maior do que o passado como parâmetro): floor(x); arredenda corretamente:
round(x,digits=2); exibe numero de digitos: signif(x,digits=2); raiz
quadrada: sqrt(x); pi valor de pi=3,14.... Use NA para valores em falta e NaN
para valores não é numero.
4) Operadores
|
==
6.4) Calculando valores de linhas
> rowSums(dados)
[1] 3 6 9 12 15
7) Objetos: Lista
Muito usado para saida de funçoes
7.1) Construindo uma lista
> saida<-list(x=10,arq='dados')
> saida
$x
[1] 10
Teste 1
Teste 2
true
true
true
true
true
true
false
false
true
false
false
true
false
true
false
> saida$arq
[1] 'dados'
false
false
false
false
true
7.3) lendo os campos de uma lista
5) Objeto: Vetor
5.1) Criar vetor rápido.
> x<-c(1,2,3)
> x
[1] 1 2 3
> x<-c(1:5)
> x
[1] 1 2 3 4 5
> x[-(2:3 )] # o indice negativo exclui valores do vetor
[1] 1 4 5
5.2) Criar sequencia. seq(from,to,by,length). #by=incremento,
length=comprimento.
5.3) Vetores lógicos
TRUE
6.3) lendo os campos de um data frame
3) Operações Matemáticas
> seq(1,10,by= 2)
[1] 1 3 5 7 9
> seq(from=1,length=10,by= 2)
[1] 1 3 5 7 9 11 13 15 17 19
TRUE
6.1) Construindo um data frame
2) Nomes de variáveis
&
TRUE
$arq
[1] 'dados'
7.2) Acessando a um item de uma lista
> names(saida)
[1] 'x'
'arq'
8) Programando com Script
Para programação no R, usa-se toda a capacidade de processamento disponível.
Use #... para comentário simples. if(F){} para comentário em bloco.
8.1) Estrutura do Script
/ea_catalunha_tarefa/exercicio1/exercicio1.sr
sink('resultados.txt')
# Codigo do Script
sink()
8.2) Executando o Script de dentro do R
> source('relatorio01.sr',echo=T)
8.3) Estrutura básica de arquivos e pastas de uma tarefa
ea_catalunha_tarefa
|-- .RData
|-- .Rhistory
Resumo R. Prof. Dr. Catalunha - Versão atualizada em 12/11/2013 às 16:13 hs
Página 1 de 4
|-|-|-`--
relatorio01.sr
dados.txt
resultados.txt
graficoA.png
Obs.: o arquivo sublinhado será criado automaticamente pelo script.
8.4) Estrutura do arquivo padrão de entrada. Primeira linha é o cabeçalho.
Separador por espaço e Use # para comentário deste arquivo.
/ie_catalunha_tarefa/dados.txt
#Autor: Prof. Dr. Catalunha
#Fonte do dado
x y
1 4
2 5
3 6
9) Programando com Funções
Para programação no R, usa-se toda a capacidade de processamento disponível.
Use #... para comentário simples
while (condicao){
# executa codigo enquanto condicao for verdadeira
}
12.4) Lê valor do teclado.
> num <- scan()
1: 10
2: 20
3:
> txt<-scan(what='character')
1: aaa
2: bbb
3:
13) Estatísticas Descritiva
13.1) Funções estatísticas básicas.Verifique sempre a presença de valores
NULOS=NA
> x <- c(1:5)
> x
[1] 1 2 3 4 5
> mean(x)
[1] 3
> max(x)
[1] 5
> var(x)
[1] 2.5
> min(x)
[1] 1
> sd(x)
[1] 1.581139
> range(x)
[1] 1 5
> summary(x)
...
> length(x)
[1] 5
> sort(x,decreasing=TRUE)
[1] 5 4 3 2 1
> sum( x)
[1] 15
na.exclude(c(2,NA,1))
[1] 2 1
> paramSaida <- ffuncao(entrada01,entrada02)
> hist(x)
> boxplot(x)
O objetos paramSaida contém todos os objetos da lista de return, além da saida
natural da função
> plot(x)
9.1) Cria e editar uma função
> fix(ffuncao)
9.2) Estrutura da função
function(entrada01=valor,...,entradaN=”valor”){
# codigo da função
ParamSaida<-list(param01=valor,...,paramN=”valor”)
return(ParamSaida)
}
9.3) O nomes dos parametros de retorno da função podem ser lidos com
> names(ffuncao)
9.4) Executando funções
9.5) Exportar funcao como objeto
> save(ffuncao,file='ffuncao.objr')
9.6) Importar função salva como objeto
>load(“ffuncao.objr”)
10) Leitura em arquivo
10.1) Ler dados ascii de arquivo salvando em DataFrame
> dados<-read.table('dados.txt',head=T)
> dados
x y
1 1 4
2 2 5
3 3 6
11) Escrita em arquivo
11.1) Escreve DataFrame em arquivo ascii. dados =um dataframe.
>write.table(dados,file='resultados')
11.2) Associar o arquivo a um objeto. “a” = adicionar. “w” = escrever.
>arq<-file('resultados','a')
11.3) Envia texto e valores para arquivo
>cat(“texto”,objvetor,”\n”,file=arq)
11.4) Captura saida de comando R e envia para arquivo
>capture.output(summary(modelo),file=arq)
14) Distribuições de probabilidade
As distribuições mais usadas são, com respectivo nome usado no R
Distribuição
Função no R
Parâmetros e configurações
Normal
?norm
Média, Desvio Padrão,...
t
?t
GL
?chisq
GL
χ
2
f
?f
GL1, GL2
Observação: No R para cada distribuição de probabilidade implementada há 4
prefixos básicos para indicar funções diferentes para o mesmo modelo de
probabilidade, são elas:
d: Calcula a densidade de probabilidade, f(x) no ponto x.
p: Calcula a probabilidade,(entre 0 a 1), acumulada F(x) no ponto x=?
q: Calcula o quantil, x=?, correspondente a uma dada probabilidade (entre 0 a 1)
r: retira uma amostra da distribuição
Exemplo para distribuição normal:
dnorm(2.3,3,0.5) 0.2994549
pnorm(2.3,3,0.5)
qnorm(0.08,3,0.5) 2.297464
rnorm(5,3,0.5)
3.904574 2.618711
3.119791 3.432854
2.459779
11.5) Junta texto para formar string
>paste(dados,'_resultados',sep='')
11.6) fechar arquivo
0.08075666
>close(arq)
15) Testes estatísticos z,t,f, χ 2
11.7) Redirecionando saída do R para arquivo.
Em que teste é a estatistica do teste em questão podendo ser z,t,f,
> sink('resultados')
Rejeita H0
Região Crítica
11.8) Retorna saída do R para tela
> sink()
12) Decisão e Iteração
12.1) Estrutura de controle if
if (condicao){
#caso verdadeiro
}else if(condicao){
#caso verdadeiro
}else{
#caso falso
}
12.2) Estrutura de repetição for
for (variavel in inicio:fim){
# executa codigo
}
p-value<
Não Rejeita H0
α
p-value>
2
Rejeita H0
Região Crítica
α
p-value<
teste
teste< teste α
χ
α
teste> teste α
Existem ampliações deste quadro, veja na pag 221
Situação H0:
2
σ =σ
2
0
# testando
a variância
σ 21=σ 22
# testando
duas variâncias
Teste
2
χ (qui-quadrado)
Não simétrico, bi e
unicaudal
f (teste f)
Não simétrico, bi e
unicaudal
Equação
χ 2=∑
X i− ̄X
σ
2
F=
Exemplo
2
=
(n−1) s
2
σ0
S 21 /σ 21
S 22 /σ 22
Pág 162, exp 8.10
Pág 233, exp 10.13
Pág 233, exp 10.14
12.3) Estrutura de repetição while
Resumo R. Prof. Dr. Catalunha - Versão atualizada em 12/11/2013 às 16:13 hs
Página 2 de 4
μ=μ0
# testando a
média
σ # sendo
conhecido
μ=μ0
# testando a
média
μ1 =μ 2 # amostras
comparativas de
médias
σ # desconhecido
z (normal)
Simétrico, bi e
unicaudal
t (teste t de Student)
Simétrico, bi e
unicaudal
̄x−μ
z= σ 0
√n
Pág 155, exp 8.6
Pág 215, exp 10.4
̄x −μ 0
S
√n
Pág 164, exp 8.14
Pág 217, exp 10.5
t=
aov1 <- aov(obs ~ trat, data=quadro)
#Análise de Variancia CAB
aov1 <- aov(obs ~ trat + bloco, data=quadro)
#Análise de Variancia FAT
aov1 <- aov(obs ~ fa*fb, data=quadro)
summary(aov1)
18) Gerar Graficos
16) Regressão Linear e Não-Linear
16.1) Estrutura do arquivo padrão de entrada. Primeira linha é o cabeçalho.
Separador por espaço
y
1
2
3
x1 x2
4 6
5 7
6 9
18.1) Envia gráficos para arquivo. Se plot mostra vários gráficos use %d para
numerar as saida automaticamente. Após voltar dispositivo para tela.
>png(file=“graficoA%d.png”)
Após voltar dispositivo para tela.
>dev.off()
18.2) Exemplos de gráficos.
16.2) Script para análise Regressão Linear
eqreg<-"y~x" ou "y~x+I(x^2)" ou "y~x1+x2"
dados<-read.table(file='dados',head=T)
coefreg<-lm(eqreg,data=dados)
cor(dados)
confint(coefreg)
plot(coefreg)
summary(coefreg)
anova(coefreg)
influence(coefreg)
predict.lm(coefreg,newdata=data.frame(x=c(...)),interval="confi
dence",se.fit=T)
predict.lm(coefreg,newdata=data.frame(x=c(...)),interval="predi
ction",se.fit=T)
invisible(library(MASS))
stepAIC(coefreg,direction="both")
invisible(library(MPV))
PRESS(coefreg)
invisible(library(wle))
mle.cp(coefreg)
x<-c(1,2,3,4,5,6,7,8,9)
y1<-3*log(x)
y2<-10/x
y3<-log(x)
plot(x,y1,ann=FALSE,type='o',
col='red',lty=1,lwd=1,pch=22,cex=1,ylim=c(0,10),xlim=c(0,10))
lines(x,y2,col='blue',lty=2,lwd=3)
points(x,y3,col='green',lwd=5,pch=21,cex=5)
title(main='Grafico', col.main='blue', font.main=1)
title(xlab='xXxX', col.lab='black', font.lab=2)
title(ylab='yYyY', col.lab='black', font.lab=3)
legend('topright',legend=c('simbolo+linha','linha','simbolo'),c
ol=c('red','blue','green'),lwd=c(1,3,5),lty=c(1,2,0),pch=c(22,N
A,21))
Em que: ann=FALSE(sobrescreve título dos eixos x e y). type=Tipo de grafico
(p=ponto;l=linhas;o= ponto e linha). col=cor do grafico(red;blue;green;...).
lty=tipo de linha, veja ilustração. lwd=espessura da linha. pch=tipo do ponto,veja
ilustração. cex=tamanho do ponto. xlim=limites de x. ylim=limites de y.
main=título do grafico. xlab=texto do eixo x. ylab=texto do eixo y. col.main=cor
do texto do titulo. col.lab=cor do texto do eixo. font.main=tipo da fonte do título
(1=simples;2=negrito;3=italico;4=negrito e itálico).
16.3) Script para análise Regressão Não-Linear
eqreg<-"y~1/x1+x2"
dados<-read.table(file=”dados”,head=T)
coefreg<-nls(eqreg,data=dados,start=list(x1=0.1,x2=0.2))
…
Apesar de bastante otimizado, este procedimento não-linear de
ajustamento/regressão depende do número de dados, do tipo de equação a ser
ajustada e das estimativas iniciais dos coeficientes, podendo não convergir
satisfatoriamente em alguns casos.
17) Delineamento Experimental
17.1) Estrutura do arquivo padrão de entrada. Primeira linha é o cabeçalho.
Separador por espaço. Os Delineamentos Esperimentais serão: (1) Inteiramente
Casualizado – IC. (2) Completamente Aleatorizado em Bloco – CAB. (3) Fatoriais
– FAT. A tabela a seguir apresenta a estrutura dos dados de entrada para cada um,
em que: coluna “trat”, “bloco”,”fa” e “fa” do tipo factor, “obs” do tipo numérica.
As observações podem ter tamanhos diferentes para cada tratamento
IC
CAB
FAT
trat
obs
trat
bloco
obs
fa
fb
obs
1
y
1
1
y
1
1
y
1
y
1
2
y
1
1
y
1
y
1
3
y
1
2
y
2
y
2
1
y
1
2
y
2
y
2
2
y
2
1
y
2
y
2
3
y
2
1
y
2
y
2
2
y
2
2
y
17.2) Script de análise
#Leitura dos dados IC
quadro <read.table(file='dados',head=T,colClasses=c(trat='factor',obs='
numeric'))
#Leitura dos dados CAB
quadro <read.table(file='dados',head=T,colClasses=c(trat='factor',bloco
='factor',obs='numeric'))
#Leitura dos dados FAT
quadro <read.table(file='dados',head=T,colClasses=c(fa='factor',fb='fac
tor',obs='numeric'))
#Análise de Variancia IC
Resumo R. Prof. Dr. Catalunha - Versão atualizada em 12/11/2013 às 16:13 hs
Página 3 de 4
resultado dos comandos.
/ie_catalunha_tarefa/resultados
> dados <- read.table("dados", head = T)
> summary(dados)
x
y
Min.
:1.0
Min.
:4.0
1st Qu.:1.5
1st Qu.:4.5
Median :2.0
Median :5.0
Mean
:2.0
Mean
:5.0
3rd Qu.:2.5
3rd Qu.:5.5
Max.
:3.0
Max.
:6.0
> sink()
21.4) Processando a analise a partir de um script shell, considere o script
/cn_catalunha_tarefa/estatistica.sh
#!/bin/bash
Rscript estatistica.sr
21.5) Mudando a permissão do script para execução, caso necessário
$ chmod 777 estatistica.sh
19) Letras Gregas e Equações matemáticas
Use os nomes das letras assim:
Α α alpha
Β β beta
21.6) Processando o script shell, teremos o mesmo resultado do item 21.2
$ ./estatistica.sh
Γ γ gamma
Δ δ delta
Ε ε epsilon
Ζ ζ zeta
Η η eta
Θ θ theta
Ι ι iota
Κ κ kappa
Λ λ lambda
Μ μ mu
Ν ν nu
Ξ ξ xi
Ο ο omicron
Π π pi
Ρ ρ rho
Σ σ sigma
Ττ tau
Υ υ upsilon
Φ φ phi
Χ χ chi
Ψ ψ psi
Ωω omega
20) Testes de Hipoteses
22) Referências Bibliograficas
Maior parte deste material foi escrito com base no estudo e entendimento da teoria
matemática e do software. Contudo algumas partes foram contribuições adaptadas
dos seguintes autores.
(1) http://www.statmethods.net/advgraphs/axes.html
(2) http://stat.ethz.ch/R-manual/
2
Em que teste é a estatistica do teste em questão podendo ser z,t,f, χ se H0: μ = 0
e H1: μ ≠ 0
Rejeita H0
Não Rejeita H0
Rejeita H0
Região Crítica
Região Crítica
p-value<
α
teste< teste α
p-value>
α
teste
p-value<
α
teste> teste α
21) Via terminal e Script Shell
21.1) Considere o seguinte programa
/ie_catalunha_tarefa/estatistica.sr
sink('resultados')
dados<-read.table('dados',head=T)
summary(dados)
sink()
/ie_catalunha_tarefa/dados
x
1
2
3
y
4
5
6
21.2) Processando programa via terminal, modo 1.
$ Rscript estatistica.sr
Neste caso o script r é processado mas não mostra os comandos de entrada, apenas
resultado do comando.
/ie_catalunha_tarefa/resultados
x
Min.
:1.0
1st Qu.:1.5
Median :2.0
Mean
:2.0
3rd Qu.:2.5
Max.
:3.0
y
Min.
:4.0
1st Qu.:4.5
Median :5.0
Mean
:5.0
3rd Qu.:5.5
Max.
:6.0
21.3) Processando programa via terminal, modo 2.
$ Rscript -e "source('estatistica.sr',echo=T)"
estatistica.sr
Neste caso o script r é processado e mostra todos os comandos de entrada e o
Resumo R. Prof. Dr. Catalunha - Versão atualizada em 12/11/2013 às 16:13 hs
Página 4 de 4
Download

Baixar