notas de aulas da disciplina introdução ao rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... ·...

58
UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE CIÊNCIAS EXATAS E DA TERRA DEPARTAMENTO DE ESTATÍSTICA Notas de Aulas da Disciplina Introdução ao R Prof a Iloneide Carlos de Oliveira Ramos Monitor: Ricardo de Souza Lima Natal, fevereiro de 2011

Upload: others

Post on 04-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE CIÊNCIAS EXATAS E DA TERRA

DEPARTAMENTO DE ESTATÍSTICA

Notas de Aulas da Disciplina Introdução ao R

Profa Iloneide Carlos de Oliveira Ramos Monitor: Ricardo de Souza Lima

Natal, fevereiro de 2011

Page 2: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 1

1

PROGRAMA DA DISCIPLINA INTRODUÇÃO AO R UNIDADE I: CONCEITOS BÁSICOS 1.1 – Download e instalação 1.2 – Histórico, licença, citação e demonstração 1.3 – O ambiente R 1.3.1 – A área de trabalho e seus objetos 1.3.2 – O editor de código básico do R 1.3.3 – O sistema help 1.3.4 – Conjunto de dados pré-instalados 1.3.5 – Pacotes do R 1.3.6 – As funções attach(), detach() e with() 1.4 – Comandos básicos 1.4.1 – Operações e expressões 1.4.2 – Atribuições UNIDADE II: IMPORTAÇÃO E EXPORTAÇÃO DE DADOS 2.1 – Entrada de dados via teclado 2.2 – Leitura de dados de um arquivo texto 2.3 – Gravação de dados em um arquivo texto 2.4 – Importação de arquivos do Excel 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS, SAS,... UNIDADE III: ELEMENTOS ESSENCIAIS DA LINGUAGEM R 3.1 – Vetores 3.2 – Funções e argumentos 3.3 – Data frames 3.3.1 – Indexação de data frames 3.3.2 – Seleção condicional de observações 3.4 – Matrizes 3.4.1 – Indexação de matrizes 3.5 – Listas 3.5.1 – Indexação de listas 3.6 – Fatores 3.7 – Dados agrupados 3.8 – Posto e ordenação 3.9 – As funções apply(), lapply(), sapply(), tapply() e by() UNIDADE IV: O SUBSISTEMA GRÁFICO 4.1 – A região gráfica 4.2 – A função plot.default() 4.3 – Algumas funções gráficas auxiliares 4.4 – A função par() 4.5 – Alguns gráficos da metodologia estatística UNIDADE V: COMANDOS DE PROGRAMAÇÃO 5.1 – A estrutura if 5.2 – A estrutura for 5.3 – A estrutura while 5.4 – A estrutura repeat

Page 3: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 2

2

UNIDADE VI: PROBABILIDADE 6.1 – Seleção de amostras aleatórias 6.2 – Funções para análise combinatória 6.3 – Distribuições de probabilidade 6.3.1 – Variáveis aleatórias discretas 6.3.2 – Variáveis aleatórias contínuas UNIDADE VII: ANÁLISE DESCRITIVA 7.1 – Estatísticas descritivas simples 7.2 – Representação tabular 7.3 – Representação gráfica 7.3.1 – Representação gráfica para variáveis qualitativas 7.3.2 – Representação gráfica para variáveis quantitativas 7.3.2 – Representação gráfica para variáveis mistas UNIDADE VIII: OPERAÇÕES COM VETORES E MATRIZES 8.1 – Operações com vetores 8.2 – Operações com matrizes 8.3 – Autovalores e autovetores de uma matriz

Page 4: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 3

3

# UNIDADE I: CONCEITOS BÁSICOS

# 1.1 – Download e instalação

# FAZENDO O DOWNLOAD ATRAVÉS DA PÁGINA DO R

# http://www.r-project.org/, acessando-se os seguintes links:

# CRAN; http://cran.br.r-project.org/ (Brazil);

# Windows (se for o caso); base; R-<versão>.exe.

# A instalação pode então ser iniciada.

# 1.2 – Histórico, licença, citação e demonstração

# Um breve histórico do R pode ser obtido em Pacheco et al. (p. 2-3),

# com acesso em 31/07/2008 na seguinte página:

# http://marcosfs2006.googlepages.com/Rbasico2005.pdf

# USANDO FUNÇÕES RECOMENDADAS NA ABERTURA DO R

license() # licença

citation() # citação

contributors() # contribuidores do R

demo() # demonstração

demo(graphics, package="graphics")

demo(persp, package="graphics")

# USANDO UM TRECHO (COMANDOS) DA DEMONSTRAÇÃO ACIMA PARA EXECUTAR NO R

require(datasets); require(graphics)

opar <- par(ask = dev.interactive(orNone = TRUE))

x <- seq(-10, 10, length = 50)

y <- x

rotsinc <- function(x, y) {

sinc <- function(x) {

y <- sin(x)/x

y[is.na(y)] <- 1; y

}

10 * sinc(sqrt(x^2 + y^2))

}

sinc.exp<-expression(z==sinc(sqrt(x^2 + y^2)))

z <- outer(x, y, rotsinc)

par(bg = "white")

persp(x, y, z, theta = 30, phi = 30, expand = 0.5, col = "lightblue")

# 1.3 – O ambiente R

# 1.3.1 – A área de trabalho e seus objetos

# LISTANDO A ÁREA DE TRABALHO

ls()

# ACRESCENTANDO OBJETOS NA ÁREA DE TRABALHO

x = 1

y = 1:10; z = -1

v = w = 3

ls()

x

y

z

Page 5: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 4

4

# VISUALIZANDO O CONTEÚDO DE UM OBJETO DA ÁREA DE TRABALHO

x

y

(t=1.5)

# REMOVENDO UM OBJETO DA ÁREA DE TRABALHO

rm(v)

ls()

# REMOVENDO UMA SEQUÊNCIA DE OBJETOS DA ÁREA DE TRABALHO

rm(list=ls()[2:4])

ls()

# REMOVENDO TODOS OS OBJETOS DA ÁREA DE TRABALHO

rm(list = ls())

ls()

# REPONDO OBJETOS NA ÁREA DE TRABALHO

(nome = "maria")

x = 0; y = 0

altura = NA # valor não informado ou não se aplica

vazio = NULL # o objeto existe, mas está vazio

(logico1=FALSE)

(logico2=T)

ls()

# CLASSIFICANDO ALGUNS DOS DIVERSOS TIPOS DE OBJETOS DO R

class(logico)

is.logical(logico)

class(nome)

is.logical(nome)

is.character(nome)

class(vazio)

is.null(vazio)

class(x)

is.numeric(x)

is.character(x)

class(cars)

is.matrix(cars)

is.data.frame(cars)

class(3 + 2i)

is.complex(3 + 2i)

# GRAVANDO A ÁREA DE TRABALHO EM UM ARQUIVO

save.image("AreaTrab.RData") # ou acessar: Arquivo; Salvar área...

# CARREGANDO A ÁREA DE TRABALHO CONTIDA NUM ARQUIVO

load("AreaTrab.RData") # ou acessar: Arquivo; Carregar área ...

# GRAVANDO O HISTÓRICO DE UTILIZAÇÃO DOS COMANDOS NUM ARQUIVO

savehistory("Hist.Rhistory") # ou acessar: Arquivo; Salvar Hist...

# CARREGANDO O HISTÓRICO CONTIDO NUM ARQUIVO

loadhistory("Hist.Rhistory") # ou acessar: Arquivo; Carregar His...

Page 6: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 5

5

# 1.3.2 – O editor de código básico do R

# EDITANDO E GRAVANDO ARQUIVOS DE COMANDOS DO R

# Para criar um arquivo de comandos, acessar: Arquivo; Novo script e

# editar os comandos.

# Para gravar o arquivo acessar: Arquivo; Salvar Arquivo ou Salvar como.

# ABRINDO UM ARQUIVO DE COMANDOS DO R

# Para abrir um arquivo de comandos, acessar: Arquivo; Abrir script...

# 1.3.3 – O sistema help()

help()

# COPIANDO ALGUNS EXEMPLOS DA SEÇÃO EXAMPLES DO help()

help(lapply)

?lapply # the same

help("for") # or ?"for", but the quotes are needed

?"+"

help(package="splines") # get help even when package is not loaded

data() # list all available data sets

?women # information about data set "women"

# PODE-SE USAR, TAMBÉM, O SISTEMA HELP EM Html

help.start() # ou acessar: Ajuda; Ajuda Html

# A partir do help.start(), pode-se acessar os links:

# Packages; graphics; P; plot e, assim, estudar o sistema help(plot).

# ESTUDANDO EXEMPLOS DA SEÇÃO EXAMPLES DO help(plot)

plot(cars)

lines(lowess(cars))

plot(sin, -2*pi, 3*pi) # ou, igualmente:

curve(sin, -2*pi, 3*pi)

# ESTUDANDO ALGUMAS FUNÇÕES IMPORTANTES USANDO O HELP

?dnorm

?plot.default

# PROCURANDO UM TEXTO NO SISTEMA HELP

help.search("weighted mean") # o mesmo que:

??"weighted mean" # para versões atuais

??"weigted mean" # mesmo incorreto o texto é localizado

help.search("histogram")

help.search("pie 3d") # com o pacote plotrix instalado

# PROCURANDO POR NOMES DE OBJETOS EM PACOTES INSTALADOS

apropos("^ca") # objetos que começam com "ca"

apropos("^.$") # objetos com um caracter

apropos("^..?$") # objetos com dois caracteres

apropos("^.{2,4}$") # objetos com 2, 3 ou 4 caracteres

apropos("^.{30,}$") # objetos com 30 ou mais caracteres

Page 7: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 6

6

1.3.4 – Conjunto de dados pré-instalados

# ACESSANDO OS DADOS PRÉ-INSTALADOS USANDO O MOUSE

# A partir do help.start(), pode-se acessar os links: Packages; datasets;

# C; cars e, assim, obter informações a respeito dos dados ali contidos.

# ACESSANDO OS DADOS PRÉ-INSTALADOS USANDO AS FUNÇÕES DO R

data()

cars

ls()

data(cars) # carrega o objeto cars para a área de trabalho

ls()

# DETERMINANDO A CLASSE DE OBJETOS PRÉ-INSTALADOS

class(cars)

class(HairEyeColor)

# DENOMINANDO COLUNAS DE OBJETOS PRÉ-INSTALADOS

names(cars) # visto que se trata de data frame, há denominação

names(HairEyeColor) # visto que se trata de tabela, não há denominação

# LISTANDO TODOS OS DADOS DISPONÍVEIS (PACOTES CARREGADOS PREVIAMENTE)

data(package = .packages(all.available = TRUE))

# 1.3.5 – Pacotes do R

# A partir do help.start(), pode-se visualizar as funções contidas

# em um pacote, acessando os links (mouse): Packages; graphics

# VISUALIZANDO A LISTA DE PACOTES DISPONÍVEIS

# OBS: inclui os objetos anexados com o uso do attach() – ver # 1.3.6

search()

# CARREGANDO UM PACOTE QUE NÃO ESTÁ DISPONÍVEL

library(stats4) # ou acessar (mouse): Pacotes; Carregar pacote...

search()

# INSTALANDO UM PACOTE (SE A INTERNET ESTIVER DISPONÍVEL)

utils:::menuInstallPkgs() # ou acessar: Pacotes; Instalar pacote...

# Em seguida, instalar o pacote RODBC que será útil futuramente

# BAIXANDO PACOTES (SE A INTERNET ESTIVER DISPONÍVEL) EM ARQUIVOS .ZIP

download.packages(c("RODBC","plotrix"),"C:/R")

# CARREGANDO O PACOTE RODBC

library(RODBC) # ou acessar (mouse): Pacotes; Carregar pacote...

search()

# VISUALIZANDO INFORMAÇÕES E FUNÇÕES DO PACOTE RODBC:

help(package="RODBC")

# EXERCÍCIO

# Inslate, carregue, visualize informações e funções e use o help do

# pacote plotrix. Execute comandos da Seção Examples de uma das funções

# contidas no pacote.

Page 8: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 7

7

# 1.3.6 – As funções attach(), detach() e with()

# USANDO AS FUNÇÕES attach(), detach() e with()

class(cars); names(cars)

speed # Erro: objeto "speed" não encontrado

ls(); search()

attach(cars) # só deve ser usado com objetos do tipo data.frame

search()

speed

detach(cars)

search()

speed # Erro: objeto "speed" não encontrado

with(cars, mean(speed))

# 1.4 – Comandos básicos

# 1.4.1 – Operações e expressões

7*8

3+4*2

5+(-1)

(2+6)*(5+4)

5*2-1,5/3 # Erro: erro de sintaxe em " 5*2-1,"

5*2-1.5/3

exp(-1)

3%%2 # resto da divisão de 3 por 2

sin(pi/2)

asin(1)

abs(-3)

log(10)

log10(10)

sqrt(16)

3i * 2i

9 == 3 # expressão lógica

3i * 2i == -6

3i * 2i = -6 # Erro em (0+3i) * (0+2i) = -6 :

# destino da atribuição expande para um objeto fora da linguagem

9 > 3

factorial(3)

choose(10,2) # combinação de 10 elementos 2 a 2 dada por

factorial(10)/(factorial(2)*factorial(10-2))

n=10; k=2

comb=expression(n,k,factorial(n)/(factorial(k)*factorial(n-k)))

eval(comb)

class(comb)

n=10; k=3

eval(comb)

(1/sqrt(2*pi))*exp(-(2.5)^2/2) # ou:

dnorm(2.5)

dnorm(-2.5)

Page 9: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 8

8

# 1.4.2 – Atribuições e nomes de objetos

# USANDO VÁRIAS FORMAS DE ATRIBUIÇÃO DE OBJETOS

x <- 2

2 -> x

x = 2; x # o mesmo que:

(x = 2)

x = z = 2

x

z

x <- z <- 4

x -> z -> 4 # erro

y=x^2+3*x; y # o mesmo que:

(y=x^2+3*x)

# VERIFICANDO QUE LETRAS MAIÚSCULAS E MINÚSCULAS DIFERENCIAM UM OBJETO

X # Erro: objeto "X" não encontrado

x

# VERIFICANDO QUE NÃO PODE HAVER ESPAÇOS NO NOME DE UM OBJETO

media altura=168.33 # Erro: erro de sintaxe em "media altura"

media.altura=168.33

# VERIFICANDO QUE O NOME DE UM OBJETO NÃO PODE INICIAR COM UM ALGARISMO

3s=5 # Erro: erro de sintaxe em "3s"

EXERCÍCIOS DA UNIDADE I

# 1) Use help.search("island") para descobrir como obter o resultado

# apresentado no gráfico abaixo e interprete seus resultados.

# 2) Descubra como calcular a integral de x2 entre 0 e 1 e informe o

# resultado no exercício 3).

# 3) Executte: demo(plotmath, package="graphics") e descubra como obter

# o resultado apresentado no quadro abaixo.

# 4) Calcule a idade média dos estudantes da Universidade de Adelaide

# informadas no data frame denominado "survey".

# 5) Execute os exemplos da função "grid.polygon" e personalize

# alguns deles.

VancouverHainanPrince of WalesTimorKyushuTaiwanNew BritainSpitsbergenAxel HeibergMelvilleSouthamptonTierra del FuegoDevonBanksCelonTasmaniaMoluccasSakhalinHispaniolaHokkaidoNovaya ZemlyaIrelandMindanaoIcelandLuzonCubaNewfoundlandNew Zealand (N)JavaNew Zealand (S)CelebesEllesmereVictoriaBritainHonshuSumatraBaffinMadagascarBorneoNew GuineaGreenlandAustraliaEuropeAntarcticaSouth AmericaNorth AmericaAfricaAsia

1.0 1.5 2.0 2.5 3.0 3.5 4.0

islands data: log10(area) (log10(sq. miles))

Page 10: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 9

9

# UNIDADE II: IMPORTAÇÃO E EXPORTAÇÃO DE DADOS

# 2.1 – Entrada de dados via teclado

# USANDO A FUNÇÃO c() PARA CRIAR UM VETOR DE DADOS

(vet1 = c(10, 12, 13, 9, 11, 8, 7))

class(vet1)

# USANDO A FUNÇÃO scan() PARA CRIAR UM VETOR DE DADOS

vet2 = scan() # digitar dados (tamanho vet1) e <Enter> para finalizar

# Caso o vetor vet2 possua tamanho diferente de vet1 ocorrerá a seguir:

# Erro em data.frame(x = vet1, y = vet2 + 1) :

# argumentos implicam em número de linhas conflitantes: 7, 0

# USANDO A FUNÇÃO data.frame() PARA CRIAR UMA TABELA DE DADOS (DATA FRAME)

dados1 = data.frame(x=vet1, y=vet2+1)

dados1

# EDITANDO UM DATA FRAME

edit(dados1)

dados1 # os dados não se alteram

# OBS: Para alterá-los usar atribuição

dados1 = edit(dados1)

dados1

# EDITANDO E ALTERANDO UM DATA FRAME

fix(dados1)

# CRIANDO UM DATA FRAME VAZIO E USANDO A FUNÇÃO fix() PARA INSERIR DADOS

dados2 = data.frame()

fix(dados2)

dados2

# 2.2 – Leitura de dados de um arquivo texto

# LENDO UM ARQUIVO TEXTO COM DADOS SEPARADOS POR UM ESPAÇO

dados3 = read.table(file="texto.txt")

dados3

# LENDO O ARQUIVO TEXTO COM TÍTULOS DAS VARIÁVEIS (NA 1A LINHA)

dados3 = read.table(file="texto.txt", header=T)

dados3

# LENDO UM ARQUIVO GRAVADO COMO TIPO CSV (TEXTO) A PARTIR DO EXCEL

alunos=read.table(file="DadosAlunos.csv", header=T, sep=";")

alunos

# LENDO O ARQUIVO TEXTO, USANDO COMO SEPARADOR A TABULAÇÃO

dados4=read.table(file="texto.txt", header=T, sep="\t")

dados4

# 2.3 – Gravação de dados em um arquivo texto

write.table(dados2, file="dados2.txt", quote=F, row.names=F)

Page 11: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 10

10

# 2.4 – Importação de arquivos do Excel

# IMPORTANDO UM ARQUIVO DO EXCEL

library(RODBC) # Caso haja erro, o pacote RODBC deve ser instalado

conexao=odbcConnectExcel("DadosAlunos.xls")

conexao # apresenta dados da conexão

sqlTables(conexao) # apresenta dados da(s) planilha(s)

alunos = sqlFetch(conexao, "Plan1")

close(conexao) # é importante fechar a conexão para abrir o arq. no Excel

alunos

class(alunos)

str(alunos)

# 2.5 – Exportação para arquivos do Excel

# EXPORTANDO PARA UMA NOVA PLANILHA (CONEXÃO ABERTA COM readOnly = F)

library(RODBC)

con=odbcConnectExcel("Teste.xls", readOnly = F) # cria arq. se não existe

sqlSave(con, data.frame(x=1:20), "MinhaPlan", rownames = FALSE)

close(con) # fecha a conexão

# 2.6 – Importação de dados do SPSS, SAS,...

library(foreign) # Caso haja erro, o pacote deve ser instalado

?read.spss # importa arquivo do SPSS

?read.ssd # importa arquivo do SAS

# EXERCÍCIOS DA UNIDADE II

# 1) Importe para o R os dados dos alunos que cursaram Introdução ao R

# nos últimos anos, a partir do arquivo .xls fornecido, usando as

# as seguintes funções:

# a) sqlFetch();

# b) read.table(), com o arquivo texto separado por tabulações;

# c) read.csv(). Dica: Use o help para descobrir como usá-la.

# 2) Use help.search() (ou ??) para descobrir como usar uma função que

# deleta arquivos em um diretório. Use essa função para deletar o

# arquivo Teste.xls criado no item 2.5

Page 12: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 11

11

# UNIDADE III: ELEMENTOS ESSENCIAIS DA LINGUAGEM R

# 3.1 – Vetores

# CRIANDO VÁRIOS TIPOS DE VETORES

(nomes = c("pedro", "maria", "lucas"))

class(nomes)

(x = c(10.3, 2, 0.2, -2, -7.9))

class(x)

(misto = c(x, nomes))

class(misto)

(z = c(0.1+0.9i,0.2-0.7i))

class(z)

(logico = c(T,F,F,T)) # ou: logico = c(TRUE,FALSE,FALSE,TRUE)

# CRIANDO UM VETOR LÓGICO A PARTIR DE UMA EXPRESSÃO LÓGICA

x >= 2

nomes != "maria"

# USANDO FUNÇÕES ESPECIAIS PARA CRIAÇÃO DE VETORES

1:5

seq(1,10,2) # cria uma sequência de 1 a 10 com intervalo igual a 2

seq(0,6,.2)

seq(1,9,3)

seq(9,1,3) # Erro em seq.default(9,1,3) : sinal errado no argumento 'by'

rep(0,10) # repete 0 dez vezes

rep(c(1,2,3), 2)

rep(c(1,2,3), c(2,3,4))

rep(c(-1,0,1), c(1,2,3))

rep(1:2, rep(4,2))

# USANDO CONSTANTES ESPECIAIS PARA CRIAÇÃO DE VETORES

LETTERS[1:4]

letters[1:5]

month.abb

month.name

# USANDO AS FUNÇÕES format E ISOdate PARA GERAR VETORES REFERENTES A DATA

?format.POSIXct

(meses=format(ISOdate(2000, 1:12, 1), "%b"))

(MESES=format(ISOdate(2000, 1:12, 1), "%B"))

(dias.semana=format(ISOdate(2000, 1, 2:8), "%a"))

(DIAS.SEMANA=format(ISOdate(2000, 1, 2:8), "%A"))

# REALIZANDO OPERAÇÕES COM VETORES

peso = c(60,70,80)

altura = c(1.60, 1.70, 1.80)

peso/altura^2

peso+5

peso+c(2,3) # executa a expressão, mas gera a seguinte advertência

# Warning message:

# objeto de comprimento maior

# não é múltiplo do objeto de comprimento menor in: peso + c(2, 3)

peso+c(2,3,2)

Page 13: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 12

12

# USANDO OPERAÇÃO COM VETORES PARA CALCULAR A MÉDIA

media = sum(peso)/length(peso) # ou: media=mean(peso)

media

# CALCULANDO O VETOR DE DESVIOS EM TORNO DA MÉDIA

peso - media

# CALCULANDO A SOMA DOS QUADRADOS DOS DESVIOS EM TORNO DA MÉDIA

sum((peso - media)^2)

# CALCULANDO O DESVIO PADRÃO

s= sqrt (sum((peso - media)^2)/(length(peso) - 1)) # ou: s=sd(peso)

s

# EXERCÍCIO

# Calcule o coeficiente de correlação, usando os vetores peso e altura

# e confira o resultado com o da função cor().

# 3.2 – Funções e argumentos

# USANDO A FUNÇÃO plot() COM SEUS ARGUMENTOS DEFAULTS (PADRÕES)

?plot.default

y=c(1,4,9,3,8)

plot.default(y) # ou: plot(y)

x=c(5,-1,0,2,3)

plot(x, y)

plot(x, y, "h") # ou: plot(x, y, type="h")

plot(x, y, "h", lwd=10)

# COMETENDO UM ERRO

plot(x, y, h)

# Erro em plot.xy(xy, type, ...) : objeto "h" não encontrado

h="h"

plot(x, y, h) # ou: plot(x, y, "h")

# USANDO A FUNÇÃO args() E APRESENTANDO OUTRO EXEMPLO

args(dnorm)

dnorm(2) # atribui argumentos defaults aos não definidos. Equivale a:

dnorm(2, mean=0, sd=1) # ou: dnorm(2,0,1) # ou, ainda, a:

dnorm(x, sd=1, mean=0) # difere de: dnorm(2,1,0)

# CRIANDO UMA FUNÇÃO PARA O CÁLCULO DO INVERSO DA RAIZ QUADRADA

mf = function (x) {

return(1/sqrt(x))

}

# TESTANDO A FUNÇÃO CRIADA

mf(16)

1/sqrt(16)

# CRIANDO UMA FUNÇÃO, ATRIBUINDO UM ARGUMENTO DEFAULT

mf = function (x=25) {

return(1/sqrt(x))

}

Page 14: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 13

13

# TESTANDO A FUNÇÃO mf

mf() # ou:

mf(25) # ou ainda:

mf(x=25)

mf(16)

# CRIANDO UMA FUNÇÃO COM DOIS ARGUMENTOS, EQUIVALENTE A dnorm()

dnor=function(x, media=0, dp=1) {

nor=(1/(sqrt(2*pi)*dp))*exp(-(x-media)^2/(2*dp^2))

return(nor)

}

# TESTANDO A FUNÇÃO CRIADA

dnor(2,1,.3)

dnorm(2,1,.3) # teste válido!

# COMETENDO ERROS

dnor(2,mean=0,sd=1)

# Erro em dnor(2, mean=0, sd=1) : unused argument(s) (mean=0, sd=1)

# CORRIGINDO O ERRO

dnor(2,media=0,dp=1)

class(dnor)

# USANDO FUNÇÕES DENTRO DE FUNÇÕES (FUNÇÕES ANINHADAS)

plot(seq(-4,4,.1), dnor(seq(-4,4,.1)), type="l")

# EXERCÍCIO RESOLVIDO

# Crie uma função para calcular o desvio padrão. Teste sua função.

# SOLUÇÃO

dp = function(x){

s=sqrt (sum((x - mean(x))^2)/(length(x) - 1))

return(s)

}

# TESTANDO A FUNÇÃO

dp(c(5,3,6,8))

sd(c(5,3,6,8))

# EXERCÍCIOS

# 1) Crie uma função para calcular a média. Teste-a, comparando com a

# função mean().

# 2) Crie uma função com dois argumentos para calcular porcentagens.

# 3) Crie uma função para calcular o coeficiente de correlação. Teste-a,

# comparando com a função cor().

# 3.3 – Data frames

# USANDO A FUNÇÃO data.frame() SEM DENOMINAR AS COLUNAS

vet1 = vet2 = 1:7

dados1 = data.frame(vet1, vet2+1, check.names = F) # não deve ser usado!

names(dados1)

dados1$vet2 + 1 # o "+" usado no nome da coluna confudiu o resultado

dados1$"vet2 + 1" # aspas devem ser usadas para obter o resultado correto

dados1 = data.frame(vet1, vet2+1) # usado o default: check.names=T

names(dados1)

dados1$vet2...1

Page 15: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 14

14

# USANDO A FUNÇÃO data.frame() PARA CRIAÇÃO DE DATA FRAMES

dados1 = data.frame(x=vet1, y=vet2+1)

dados1

# USANDO A FUNÇÃO data.frame(), DENOMINANDO LINHAS E COLUNAS

(dados1 = data.frame(X=vet1, Y=vet2+1, row.names=LETTERS[1:7])) # melhor!

# ACRESCENTANDO UMA COLUNA AO DATA FRAME dados1

(dados2 = data.frame(dados1, Z=vet1*2)) # ou

(dados2 = cbind(dados1, Z=vet1*2))

# ACRESCENTANDO LINHAS AO DATA FRAME dados1

(dados2 = rbind(dados1, c(10,5)))

(dados2 = rbind(dados1, dados1))

# APRESENTANDO A DENOMINAÇÃO DE LINHAS E COLUNAS

rownames(dados1)

colnames(dados1)

dimnames(dados1)

# EXERCÍCIO

# Acrescente a variável IMC aos dados da turma (data frame alunos),

# sabendo que IMC=peso/altura^2 (altura medida em metros).

# 3.3.1 – Indexação de data frames

# USANDO "[]" E "$"

dados1[2,2]

dados1[,2]

dados1[1,]

dados1[1:3,]

dados1[c(1,3,5),]

dados1[c(1,3,5),2]

dados1[c(1,3,3,5),2]

dados1[rep(1:7,2),] # ou: rbind(dados1, dados1)

dados1[-c(1,3,5),2]

dados1[c(T,T,T,F,F,F,F),2]

dados1[c(T,F),2]

dados1$X

dados1$Y

dados1$X[2]

# ALTERANDO DADOS

dados1

dados1$X[2]=19 # ou: dados1[2,1]=19

dados1

# USANDO VÁRIAS FORMAS DE APRESENTAÇÃO DOS DADOS DE UM DATA FRAME

names(alunos)

alunos[,2]

alunos$Idade

alunos$"Idade"

alunos$Ida

alunos$"I"

alunos$Pes # há outras colunas iniciando por "Pes"

Page 16: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 15

15

# 3.3.2 – Seleção condicional de observações

dados1

dados1[dados1$Y==7,] # ou: dados1[dados1[,2]==7,]

dados1[dados1$Y==7|dados1$Y==6,]

dados1[dados1$Y==7|dados1$Y==6,1]

dados1$Y[dados1$Y>6]

dados1$Y>6

dados1$X<=10

dados1$Y>6 & dados1$X<=10

dados1$Y[dados1$Y>6 & dados1$X<=10]

dados1$Y<=6

dados1$Y>=10

dados1$Y<=6|dados1$Y>=10

dados1$Y[dados1$Y<=6 | dados1$Y>=10]

dados1$Y[!(dados1$Y>7)]

dados1$X[!(dados1$Y>7)]

dados1$X[dados1$Y==7]

# EXERCÍCIO

# Refaça os comandos acima usando [] em substituição a $

# SELEÇÃO CONDICIONAL USANDO A FUNÇÃO attach()

attach(dados1)

X; Y

Y[Y>6]

Y>6

Y[Y<=6 | Y>=10]

X[dados1$Y==7]

# EXERCÍCIOS

# Usando os dados dos alunos de Estatística:

# 1) Apresente o vetor de alturas dos alunos do sexo masculino.

# 2) Liste a variável Sexo para alunos com altura entre 150cm e 160cm.

# 3) Apresente a idade dos 50 primeiros alunos do banco de dados, usando

# duas formas diferentes.

# 4) Calcule a idade média das alunas.

# 5) Apresente o vetor lógico para alunas menores de 20 anos.

# 6) Usando o attach(), liste a idade das alunas cujo lazer é praia.

# USANDO AS FUNÇÕES subset() E transform()

subset(dados1, dados1$Y>=7) # ou: dados1[dados1$Y>=7,]

transform(dados1,log.Y=log(dados1$Y)) # ou:

data.frame(dados1,log.Y=log(dados1$Y))

# 3.4 – Matrizes

# USANDO A FUNÇÃO matrix() PARA CRIAR MATRIZES...

A = matrix(1:20, nrow=4, byrow=T) # ...organizando por linha

B = matrix(1:20, nrow=4, byrow=F) # ...organizando por coluna

# USANDO AS FUNÇÕES rownames(), colnames()...

rownames(A)=LETTERS[1:4] # ...para denominar linhas

colnames(A)=c("X1","X2","X3","X4","X5") # ...para denominar colunas

A

Page 17: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 16

16

# EXERCÍCIO

# Construa uma matriz igual à matriz A acima, usando o argumento dimnames

# da função matrix(). Para conseguir ajuda, use o último exemplo do

# help(matrix).

# USANDO AS FUNÇÕES cbind() E rbind() PARA CRIAR MATRIZES

cbind(1:5,6:10,11:15) # concatenando por coluna

cbind(X1=1:5,X2=6:10,X3=11:15) # denominando as colunas

rbind(1:5,6:10,11:15) # concatenando por linha

rbind(A=1:5,B=6:10,C=11:15) # denominando as linhas

# USANDO AS FUNÇÕES dim() E t()

dim(A)

t(A)

# 3.4.1 – Indexação de matrizes

A

A[2,2]

A[,2]

A[1,]

A[,2]==7

A[A[,2]==7,]

A[A[,2]==7,1]

A[A[,2]==7,2:3]

A[A[,2]>=7,c(2,4)]

A[A[,2]>=7,rep(2,4)]

A[4,]=rep(20,5)

A

# TRANSFORMANDO UMA MATRIZ EM DATA FRAME

(dad=data.frame(A))

# Observação

dad$X2 # "$" pode ser usado em data frame...

A$X2 # ...mas não em matriz

class(dad)

class(A)

# EXERCÍCIOS

# 1) Crie uma matriz numérica qualquer de ordem 10x2:

# a) usando a função matrix();

# b) usando a função rbind();

# c) usando a função cbind().

# 2) Atribua nomes às duas colunas da matriz.

# 3) Use "[]" para extrair os seguintes subconjuntos da matriz criada:

# a) a primeira coluna completa;

# b) a segunda linha completa;

# c) o elemento situado na 10ª linha e 2ª coluna;

# d) elemento(s) da coluna 1 maiores que um certo valor.

# e) elemento(s) da coluna 2 entre dois valores específicos.

# 4) Transforme a matriz criada em um data frame, estudando a função

# "as.data.frame".

# 5) Use "$" no data frame criado no exercício 4) para extrair os

# subconjuntos apresentados em 3).

Page 18: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 17

17

# 3.5 – Listas

# CRIANDO LISTAS

(lista1 = list(1:5, 1:8))

class(lista1)

nomes = c("pedro", "maria", "lucas")

y = 1:10

(lista2 = list(Nomes=nomes, Y=y))

names(lista2)

(lista3=list(lista2, Matriz=A))

names(lista3)

# 3.5.1 – Indexação de listas

# USANDO "[...]" EM LISTAS

lista1[[1]] # ou: lista1[1]

lista1[[1]][3] # é diferente de: lista1[1][3]

lista2[[2]]

lista2[[2]][4]

lista3[[2]][2,2]

lista3[[1]][[1]][3]

# USANDO "$" EM LISTAS

lista2$Y # ou: lista2[[2]]

lista2$Y[4] # ou: lista2[[2]][4]

lista3$Matriz # é diferente de: lista3$A

lista3[[1]]$Nomes[3] # ou: lista3[[1]][[1]][3]

# 3.6 – Fatores

# VERIFICANDO O TIPO DE VARIÁVEL DO DATA FRAME alunos

attach(alunos)

class(Sexo)

is.factor(Sexo)

summary(Sexo)

class(Idade)

summary(Idade)

is.factor(Idade)

# TRANSFORMANDO A VARIÁVEL IDADE EM FAIXAS DE IDADE

alunos$Faixa.etaria[Idade<20]=1

alunos$Faixa.etaria[Idade>=20&Idade<30]=2

alunos$Faixa.etaria[Idade>=30]=3

class(alunos$Faixa.etaria)

summary(alunos$Faixa.etaria)

is.factor(alunos$Faixa.etaria)

# TRANSFORMANDO A COLUNA Faixa.etaria DE NUMÉRICA PARA FATOR

alunos$Faixa.etaria=factor(alunos$Faixa.etaria,levels=1:3) # ou:

alunos$Faixa.etaria=as.factor(alunos$Faixa.etaria)

class(alunos$Faixa.etaria)

summary(alunos$Faixa.etaria)

is.factor(alunos$Faixa.etaria)

Page 19: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 18

18

# DENOMINANDO AS FAIXAS ETÁRIAS (NÍVEIS DO FATOR)

alunos$Faixa.etaria

levels(alunos$Faixa.etaria)=c("< 20 anos","20 a 30 anos",">= 30 anos")

alunos$Faixa.etaria

is.factor(alunos$Faixa.etaria)

# TRANSFORMANDO EM FATOR E, AO MESMO TEMPO, DENOMINANDO OS NÍVEIS

factor(alunos$Faixa.etaria,labels=c("< 20 anos","20 a 30 anos",

">= 30 anos"))

# EXERCÍCIO

# Denomine os níveis da variável categórica (fator) Sexo como:

# Masculino para M e Feminino para F.

# 3.7 – Dados agrupados

# USANDO A FUNÇÃO split() PARA AGRUPAR DADOS EM UMA LISTA

attach(alunos)

idade.sexo=split(Idade,Sexo)

idade.sexo

class(idade.sexo)

mode(idade.sexo)

idade.sexo$F

idade.sexo$M

# BOXPLOT USANDO DADOS AGRUPADOS

boxplot(idade.sexo) # ou: boxplot(Idade~Sexo) #ou: plot(Idade~Sexo)

# 3.8 – Posto e ordenação

# ORDENANDO DADOS DE FORMA CRESCENTE E DECRESCENTE

sort(c(22,24,25,21,27,26))

sort(c(22,24,25,21,27,26), decreasing = TRUE)

# APRESENTANDO OS DADOS EM ORDEM INVERSA

rev(c(22,24,25,21,27,26))

# IDENTIFICANDO A POSIÇÃO (O POSTO) DOS ELEMENTOS EM UM VETOR

rank(c(22,24,25,21,27,26)) # resulta em: 22 é o 2º menor elemento…

rank(c(22,22,25,21,27,26))

# IDENTIFICANDO A POSIÇÃO PARA ORDENAÇÃO DOS ELEMENTOS DE UM VETOR

order(c(22,24,25,21,27,26)) # resulta em: o menor elemento é o 4º…

# USANDO A FUNÇÃO order() PARA ORDENAR VETORES

ord=order(c(22,24,25,21,27,26))

c(22,24,25,21,27,26)[ord] # ou:

c(22,24,25,21,27,26)[order(c(22,24,25,21,27,26))]

posto=rank(c(22,24,25,21,27,26)) # a função rank() não é apropriada:

c(22,24,25,21,27,26)[posto]

# APRESENTANDO DADOS DE UM VETOR CONFORME A ORDENAÇÃO DE OUTRO

order(alunos$Idade)

alunos$Idade[order(alunos$Idade)]

alunos$Peso[order(alunos$Idade)]

Page 20: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 19

19

# ORDENANDO UM VETOR SEGUINDO A ORDEM HIERÁRQUICA DE DOIS VETORES

ord.idade.peso=order(alunos$Idade,alunos$Peso)

alunos$Idade[ord.idade.peso]

alunos$Peso[ord.idade.peso]

# 3.9 – As funções apply(), lapply(), sapply(), tapply() e by()

# CALCULANDO MÉDIAS POR LINHA E POR COLUNA DE UMA MATRIZ

notas.2008.1=cbind(Aval1=c(7.8,9.0,7.8,5.2,6.9,9.8,4.2),

Aval2=c(6.2,6.8,8.7,2.5,5.6,8.6,6.4),

Aval3=c(7.8,6.0,8.9,5.0,6.5,9.2,4.4))

notas.2008.1

apply(notas.2008.1,2,mean) # média por avaliação

apply(notas.2008.1,1,mean) # média por aluno

class(notas.2008.1)

# USANDO ARGUMENTOS NA FUNÇÃO APLICADA POR apply()

apply(notas.2008.1,2,quantile,prob=c(.1,.9)) # percentis 10 e 90

# TRANSFORMANDO A MATRIZ DE NOTAS EM LISTA E USANDO A FUNÇÃO lapply()

(lista.not=list(notas.2008.1[,1],notas.2008.1[,2],notas.2008.1[,3]))

lapply(lista.not,mean)

class(lista.not)

# USANDO A FUNÇÃO sapply()

sapply(lista.not,mean) # mesmo resultado de lapply() mais atraente

names(lista.not)=c("A1","A2","A3") # melhor ainda com denominações:

sapply(lista.not,mean)

# USANDO A FUNÇÃO tapply()

tapply(alunos$Idade,alunos$Sexo,mean) # compare com EXERC.1) anterior

class(alunos$Idade)

class(alunos$Sexo)

# USANDO A FUNÇÃO by()

by(alunos[,2:4],alunos$Sexo, summary)

# ADAPTANDO O ÚLTIMO EXEMPLO DO help(by) PARA NOSSOS DADOS

attach(alunos)

tmp = by(alunos, Sexo, function(x) lm(Peso ~ Altura, data = x))

sapply(tmp, coef) # fornece os coeficientes das retas

# Entendendo os resultados obtidos

lm(Peso[Sexo=="F"]~Altura[Sexo=="F"]) # regressão simples (Sexo==F)

lm(Peso[Sexo=="M"]~Altura[Sexo=="M"]) # regressão simples (Sexo==M)

# Estudando para explorar outros resultados

tmp

class(tmp)

tmp$F

class(tmp$F)

names(tmp$F) # nomes para obtenção de outros resultados

sapply(tmp, fitted.values) # fornece os valores ajustados por Sexo

sapply(tmp, residuals) # fornece os resíduos por Sexo

detach(alunos)

Page 21: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 20

20

# EXEMPLO ADAPTADO DE TORGO (2006): Torgo-ProgrammingIntro.pdf, p.51

attach(alunos)

sapply(Peso, function(y) (y - mean(Peso))/sd(Peso))

# Ou de maneira mais simples

(Peso - mean(Peso))/sd(Peso)

# EXERCÍCIOS DA UNIDADE III

# 1) Estude as seguintes linhas de comandos:

# > A=matrix(c(2,3,6,2,3,4), ncol = 2,

# + dimnames = list(c("Cas", "Solt", "Outro"), c("M", "F")))

# > DF=as.data.frame(as.table(A))

# > colnames(DF)=c("EstadoCivil","Sexo","Freq")

# Adapte esses comandos para criar um data frame com as variáveis

# "TipoSanguineo" e "FatorRH" com as frequências entre parênteses

# dadas a seguir:

# O+ (38); O- (7); A+ (34); A- (6); B+ (9); B- (2); AB+ (3); AB- (1)

# 2) Crie uma função para resolver o exercício 1), usando 4 argumentos

# denominados "Frequencia", "num.col", "Niveis.Var", "Var".

# 3) Descubra como ordenar dados de forma decrescente, usando a função

# order().

# 4) Ordene o data frame alunos segundo a idade e a altura dos alunos,

# guardando todo o data frame ordenado em um objeto.

# 5) Atribua nomes fictícios aos alunos e calcule a média de cada um.

# 6) Considerando a matrix "notas.2008.1" criada no item 3.9, calcule a

# média parcial (sistema UFRN) de cada aluno.

# 7) Considerando a matriz referida no exercício 6), calcule a média por

# avaliação, arredondando os resultados para duas casas decimais.

# Dica: use ?round.

# 8) Sem executar a linha de comando, explique o que será obtido com:

# lapply(split(alunos$Idade,alunos$Sexo), mean)

# 9) Usando lapply(), calcule o desvio padrão em cada avaliação.

# 10) Usando as funções tapply() e data.frame(), execute comandos

# aplicados ao data frame alunos para obter resultado semelhante a:

# > Idade.média DP

# > F 22.29630 4.046031

# > M 25.35714 8.675228

Page 22: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 21

21

# UNIDADE IV: O SUBSISTEMA GRÁFICO

# 4.1 – A região gráfica

# USANDO VÁRIAS JANELAS GRÁFICAS

x11()

plot(0:10,0:10)

win.graph() # ou: x11() ou ainda: X11()

plot(0:10,(0:10)^2)

dev.set(2) # Estudar ?dev.set e funções afins

plot(0:20,0:20)

dev.next()

dev.set(dev.next())

plot(0:50,0:50)

dev.set(dev.prev())

plot(0:50,(0:50)^2)

# USANDO UMA MESMA JANELA GRÁFICA PARA ELABORAR VÁRIOS GRÁFICOS

par(mfrow=c(2,2))

plot(sin, pi, 8*pi) # A função plot() é muito versátil:

plot(function(x) 2*x-3*sin(x), pi, 8*pi) # desenha qualquer função

attach(alunos)

plot(Altura,Peso) # produz Diagrama de Dispersão

plot(Peso~Sexo) # produz Box-plot segundo níveis de um fator

# Veja o resultado:

5 10 15 20 25

-1.0

-0.5

0.0

0.5

1.0

x

x (x

)

5 10 15 20 25

1020

3040

50

x

x (x

)

150 160 170 180 190

4050

6070

8090

100

Altura

Pes

o

F M

4050

6070

8090

100

Sexo

Pes

o

Page 23: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 22

22

# 4.2 – A função plot.default()

# USANDO A FUNÇÃO plot.default() EQUIVALENTE A plot()

plot(0:10, 0:10, type="l", main="Título principal", sub="Subtítulo",

xlab="Título do eixo x", ylab="Título do eixo y")

plot(0:10, 0:10, type="s", col=2, lwd=3, lty=3, xlim=c(10,0))

plot(0:10, 0:10, col="blue", ylim=c(10,0), cex=2, pch=16, axes=F)

# 4.3 – Algumas funções gráficas auxiliares

# USANDO A FUNÇÃO text()

plot(0:10, 0:10)

text(2, 2, "Texto na coordenada (2, 2)")

plot(0:10, 0:10)

text(2, "Texto") # igual a:

text(1, 2, "Texto")

plot(0:10, 0:10)

text(1:6, "Texto")

plot(0:10,0:10, type = "n")

text(sqrt(1:10))

# USANDO A FUNÇÃO abline() - RETAS HORIZONTAL E VERTICAL

abline(v=5, h=sqrt(5))

# USANDO A FUNÇÃO abline() - RETA Y=A+BX COM A=0 E B=1

abline(0,1) # é igual a abline(a=0,b=1), mas difere de:

abline(v=0,h=1)

# USANDO A FUNÇÃO grid()

plot(cars)

grid(10,10, col="red")

# USANDO A FUNÇÃO arrows()

plot(0:10)

arrows(5, 5, 4, 4, code=2)

arrows(2, 5, 3, 4, code=3, angle=90 , length=0.1)

# USANDO A FUNÇÃO segments()

plot(0:10)

segments(3, 7, 5, 4, lwd=3)

# USANDO A FUNÇÃO lines()

plot(0:10,(0:10)^2)

lines(0:10,(0:10)^2)

# USANDO A FUNÇÃO mtext()

mtext("Lado3 / at=2", at=2)

mtext("Lado1 / linha=2", side=1, line=2)

mtext("Lado2 / linha=2,5", line=2.5, side=2, cex=.6)

mtext("Lado=4 / linha=-1 / fonte=2", font=2, side=4, line=-1)

Page 24: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 23

23

# USANDO OUTRAS FUNÇÕES GRÁFICAS

symbols(1:10, 1:10, squares=seq(0.1,1,0.1), inches=F)

symbols(1:10, 1:10, stars=matrix(rep(.5,50),ncol=5), inches=F)

colors()

colors()[1:10]

# CONSTRUINDO UM GRÁFICO POR PARTES

plot(0:10, type="n", xlab="", ylab="", axes=F)

axis(1) # OBS: axis é função; axes é arg. de plot()

axis(2, at=seq(0, 10, 3))

axis(side=4, at=seq(0, 10, 1))

points(5, 5, pch=16)

points(sample(1:10), sample(1:10))

lines(1:10, sample(1:10))

box()

# CRIANDO DESENHOS

plot(1:10,1:10,type="n",main="Casinha",axes=F,xlab="",ylab="")

rect(5,1,9,5,col=" steelblue2")

rect(6.5,1,7.5,2.5,col="tomato3")

segments(1,1,5,1)

segments(9,1,10,1)

polygon(c(5,7,9),c(5,7,5),col="brown",density= 10,angle=45,lwd=2)

polygon(c(5,7,9),c(5,7,5),col="brown",density= 10,angle=-45,lwd=2)

polygon(c(8,8,8.5,8.5),c(6,7,7,5.5),col= "greenyellow" )

polygon(3:2,1:2,border="brown",lwd=2)

polygon(3:4,1:2,border="brown",lwd=2)

lines(c(3,3),c(1,2),col="brown",lwd=2)

points(c(2,3,4),c(2,2,2),pch=16,col="green",cex=1.8)

points(c(3),c(8),cex=7,pch=16,col="gray")

points(c(2.8),c(8.3),cex=7,pch=16,col="white")

# 4.4 – A função par()

# APRESENTANDO OS ARGUMENTOS DA FUNÇÃO par()

par()

# RETORNANDO AO DEFAULT APÓS USAR A FUNÇÃO par()

op = par(mfrow=c(2,1))

plot(0:10)

par(op)

plot(0:10)

# OBS: Outra forma de retornar ao default é fechar a janela gráfica ou

# redefinir os argumentos utilizados.

# TRABALHO

# Estude todos os argumentos da função par(), usando o help(par) e os

# exemplos a seguir. Apresentar em sala de aula dois deles escolhidos por

# sorteio.

# USANDO OS ARGUMENTOS DA FUNÇÃO par()

# 1) adj

par(adj=0); plot(0:10)

Page 25: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 24

24

# 2) ann

par(ann=FALSE); plot(0:10)

# 3) ask

op = par(ask=TRUE); plot(0:10); plot(0:8) # tecle <Enter>

par(op); # retornando ao default

# 4) bg

par(bg="pink"); plot(0:10) # difere de:

plot(1:5,pch=21:25,bg=c("pink","blue","red","green","gray"),cex=4)

# 5) bty

plot(0:10, bty="u")

# 6) cex

plot(0:10, cex=2)

# 7) cex.axis

plot(0:10, cex.axis=2)

# 8) cex.lab

plot(0:10, cex.lab=2)

# 9) cex.main

plot(0:10, main="Exemplo", cex.main=2)

# 10) cex.sub

plot(0:10, sub="Exemplo", cex.sub=2)

# 11) col

plot(0:10, col="blue") # difere de:

par(col="blue"); plot(0:10)

# 12) col.axis

plot(0:10, col.axis="red")

# 13) col.lab

plot(0:10, col.lab="magenta")

# 14) col.main

plot(0:10, main="Exemplo", col.main="cyan")

# 15) col.sub

plot(0:10, sub="Exemplo", col.sub=" magenta")

# 16) family

par(family="mono"); plot(0:10,0:10, main="Exemplo")

par(family="Hershey")

plot(0:10,0:10); text(6, 4, "teste", vfont=c("script", "plain"), cex=3)

demo(Hershey)

# Usando a função windowsFonts() – estudar: help(windowsFonts)

windowsFonts(A=windowsFont("Coronet"), B=windowsFont("Andalus"))

plot(1:10,1:10,type="n"); text(4,4,family="A","Testando Coronet");

text(5,5,family="B","Testando Andalus")

par(family="A"); plot(0:10,0:10,main="Teste") # para eixos e títulos

Page 26: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 25

25

# 17) fg

plot(0:10, fg="violetred3")

# 18) fig

par(fig=c(0.1,0.8,0.5,1)); plot(0:10)

mtext(c("0,1","0,8","0,5","1,0"), line=-1, side=c(2,4,1,3))

# 19) fin

par(fin=c(2,5)); plot(0:10)

# 20) font

plot(0:10, font=2)

# 21) font.axis

plot(0:10, font.axis=3)

# 22) font.lab

plot(0:10, font.lab=4)

# 23) font.main

plot(0:10, main= "Exemplo", font.main=3)

# 24) font.sub

plot(0:10, sub= "Exemplo", font.sub=3)

# 25) lab

par(lab=c(8, 2, 7)); plot(0:10)

# 26) las

plot(0:10, las=2)

# 27) lend

plot(0:10, type='l', lend=0, lwd=20, lty=3)

# 28) lheight

par(lheight=3); plot(0:10); text(2, 6, "teste \n teste")

# 29) ljoin

par(ljoin=0); plot(0:8); lines(4:7, c(1,3,1,3), lwd=20);

par(ljoin=1); lines(4:7,c(4,6,4,6), lwd=20)

# 30) lmitre

plot(0:8); lines(4:7, c(1,3,1,1), lwd=20, ljoin=1, lmitre=1)

lines(4:7, c(4,6,4,6), lwd=20, ljoin=1, lmitre=3)

# 31) lty

plot(0:10, type='l', lty=3)

# 32) lwd

plot(0:10, type='l', lwd=4)

# 33) mai

par(mai=c(1,2,0,.5)); plot(0:10)

Page 27: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 26

26

# 34) mar

par(mar=c(5,5,5,5)); plot(0:10)

# 35) mex

par(mar=c(4,2,3,1), mex=.6); plot(1:8,1:8)

mtext(0:5, side=2, line=0:5); mtext(0:5, side=3, line=0:5)

# 36) mfcol; mfrow

par(mfcol=c(2,2)); for (i in 1:4) {plot(0:8, type="n"); text(5,4,i)}

par(mfrow=c(2,2)); for (i in 1:4) {plot(0:8, type="n"); text(5,4,i)}

# 37) mfg

par(mfrow=c(2,3), mfg=c(2,1)); plot(0:10)

# 38) mgp

plot(0:10, mgp=c(3, 1, 0)); plot(0:10, mgp=c(2, 1, 0))

# 39) new

par(fig=c(0.2,.8,0.3,1)); plot(0:10,0:10)

par(fig=c(0,.4,0,.4), new=T); plot(0:10,(0:10)^2)

# 40) oma

par(oma=c(0,4,1,1)); plot(0:10)

# 41) omd

par(omd=c(.1,.8,.2,.8)); plot(0:10)

# 42) omi

par(omi=c(1,2,1,.5)); plot(0:10)

# 43) pch

plot(1:25, pch=1:25 , cex=3)

# 44) pin

par(pin=c(2,3)); plot(0:10)

# 45) plt

par(plt=c(.2,.9,.1,.8)); plot(0:10)

# 46) ps

par(ps=7); plot(0:10)

# 47) omd

par(omd=c(.1,1,.2,.8), pty="s"); plot(0:10)

# 48) tck

par(tck=.2); plot(0:10); par(tck=-.05); plot(0:10)

# 49) tcl

par(tcl=1); plot(0:10)

# 50) xaxs

par(xaxs="i"); plot(0:10)

# 51) xaxt

par(xaxt="n"); plot(0:10)

Page 28: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 27

27

# 52) xlog

par(xlog=T); plot(exp(1:10), 1:10, log="x")

# 53) xpd

par(mfrow=c(3,1), lheight=3)

par(xpd=F); plot(0:10); text(2, 11, "xpd=F \n omitiu linha 1")

par(xpd=T); plot(0:10); text(2, 11, "xpd=T")

par(xpd=NA); plot(0:10, 0:10); text(2, 17, "xpd=NA")

box("figure", col="red")

# 54) yaxs

par(yaxs="i"); plot(0:10)

# 55) yaxt

par(yaxt="n"); plot(0:10)

# 56) ylog

par(ylog=T); plot(1:10, exp(1:10), log="y")

# 4.5 – Alguns gráficos da metodologia estatística

# USANDO A FUNÇÃO pie()

attach(alunos)

pie(table(Sexo),col=2:3);

legend(.5,-.8, c("Feminino", "Masculino"), col=2:3, pch=15)

# USANDO A FUNÇÃO barplot()

barplot(table(Lazer))

barplot(table(Sexo, Lazer), col=2:3)

legend("topright", c("Feminino", "Masculino"), col=2:3, pch=18)

# USANDO A FUNÇÃO hist()

hist(Peso)

# USANDO A FUNÇÃO interaction.plot()

interaction.plot(Lazer, Sexo, Peso)

# USANDO A FUNÇÃO pairs()

pairs(alunos[c(2,4,5)])

# USANDO A FUNÇÃO boxplot()

boxplot(Peso ~ Sexo)

# USANDO A FUNÇÃO stripchart()

stripchart(Peso ~ Sexo, vertical=T, add=T)

# TRABALHO

# Considere cada uma das seguintes funções: abline; axis; barplot; hist;

# interaction.plot; legend; lines; mosaic; pairs; pie; points; polygon;

# qqplot; qqnorm; rect; scatter.smooth; stripchart; symbols; win.graph.

# Cada aluno deverá apresentar em sala de aula uma função escolhida por

# sorteio. Estude cada função da seguinte forma:

# a) Execute um exemplo da seção Examples, explicando os resultados.

# b) Crie seu próprio exemplo.

Page 29: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 28

28

# EXERCÍCIOS DA UNIDADE IV

# 1) Descubra algo mais (outros argumentos) a respeito de cada função

# apresentada neste capítulo.

# 2) Produza o gráfico intitulado "Relógio" apresentado abaixo,

# modificando os dados usados nos comandos do primeiro exemplo de

# help(text).

# 3) Usando a função symbols() e os dados fornecidos na área de trabalho

# Aval1.RData reproduza o gráfico abaixo.

# 4) Usando a função plot() e os dados fornecidos na área de trabalho

# Aval1.RData reproduza o diagrama de dispersão abaixo.

# 5) Usando a função plot() e os dados dos alunos reproduza o diagrama

# de dispersão de peso versus altura.

-1.0 -0.5 0.0 0.5 1.0

-1.0

-0.5

0.0

0.5

1.0

1

2

3

4

5

6

7

8

9

10

11

12

Relógio

2003 2004 2005 2006 2007 2008

01

02

03

04

0

Ano de Ingresso

me

ro d

e fa

lta

s

Aval. 1

Aval. 2

Aval. 3

Legenda:

Média das avaliações dos alunos de Introdução ao R

segundo ano de ingresso e número médio de faltas

0 2 4 6 8 10

02

46

81

0

Nota na primeira avaliação versus nota na segunda avaliação

segundo o número de faltas

Nota na primeira avaliação

No

ta n

a s

eg

un

da

ava

lia

çã

o

Nota: o tamanho do ponto corresponde ao número de faltas

150 160 170 180 190

40

50

60

70

80

90

10

0

Peso x Alutra dos Alunos de Estatística

Altura

Pe

so

(peso, altura) da professora

Page 30: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 29

29

# UNIDADE V: COMANDOS DE PROGRAMAÇÃO

# 5.1 – A estrutura if

# USANDO A ESTRUTURA if

if (5>3) print("Verdadeiro")

if (3==3) print("Verdadeiro")

if (TRUE) print("Verdadeiro")

if (2>3) print("Não imprime, pois é falso")

if (FALSE) print("Não imprime, pois é falso")

if (3==3) {print("3 é igual a 3"); print("Verdadeiro")} # ou melhor:

if (3==3) {

print("3 é igual a 3")

print("Verdadeiro")

}

# USANDO A ESTRUTURA if else CORRETAMENTE

if (5<3) print("É falso, não imprime") else print("Verdadeiro") #ou:

if (5<3)

print("É falso, não imprime") else print("Verdadeiro") # ou ainda:

if (5<3)

print("É falso, não imprime") else

print("Verdadeiro") # ou destacando o if e o else:

if (5<3) {

print("É falso, não imprime")

} else {

print("Verdadeiro")

}

# USANDO A ESTRUTURA if else DE FORMA INCORRETA

if (5<3) print("Não imprime, pois é falso")

else print("Verdadeiro")

if (5<3)

print("Não imprime, pois é falso")

else

print("Verdadeiro")

# EXEMPLO

# usando a estrutura if else corretamente

x = sample(1:20, 1)

print(paste("O número sorteado é: ",x))

if (x%%2 == 0) {

print("Resultado par")

if (x%%4 == 0) {

print("Resultado múltiplo de 4")

}

} else {

print("Resultado ímpar")

}

Page 31: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 30

30

# EXERCÍCIO RESOLVIDO

# Simule o lançamento de um dado e apresente o resultado numa janela

# gráfica.

# SOLUÇÃO

plot(0:10,0:10, type="n")

rect(0, 0, 2, 2)

d=sample(1:6, 1)

x=0; y=0

if (d==1) points(x+1,y+1,cex=1.4,pch=16)

if (d==2) points(x+c(.5,1.5),y+c(.5,1.5),cex=1.4,pch=16)

if (d==3) points(x+c(.5,1,1.5),y+c(.5,1,1.5),cex=1.4,pch=16)

if (d==4) points(x+c(.5,.5,1.5,1.5),y+c(.5,1.5,.5,1.5),cex=1.4,pch=16)

if (d==5) points(x+c(.5,.5,1,1.5,1.5),y+c(.5,1.5,1,.5,1.5),cex=1.4,pch=16)

if (d==6) points(x+c(.5,.5,.5,1.5,1.5,1.5),y+c(.5,1,1.5,.5,1,1.5),cex=1.4,pch=16)

# 5.2 – A estruturas for

# USANDO A ESTRUTURA for

for(i in 1:5) print(i)

for(i in 1:5) print(1:i)

for(i in 1:3) for(j in 1:3) print(c(i,j))

for(i in 1:3) for(j in 1:3) print(c(i,j,i*j)) # ou melhor:

for(i in 1:3) {

print(paste("Tabuada de ", i, ":"))

print(c(" "))

for(j in 1:3) {

print(c(i,j,i*j))

}

}

# USANDO A ESTRUTURA for EM GRÁFICOS

par(mfrow=c(2,2))

for (i in 1:4) hist(rnorm(10^i), main=paste("Amostra de Tamanho",10^i))

Page 32: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 31

31

# USANDO A ESTRUTURA for PARA INCREMENTAR VALORES

j=0 # elemento neutro da adição

for(i in 1:20) {j=j+2; print(j)}

# USANDO A ESTRUTURA for PARA ACRESCENTAR ELEMENTOS EM UM CONJUNTO

letras=NULL # objeto "letras" criado sem conteúdo (vazio)

for(i in 1:10) {letras=c(letras, letters[i]); print(letras)}

# USANDO A ESTRUTURA for PARA MULTIPLICAR VALORES SUCESSIVAMENTE

PG=1 # elemento neutro da multiplicação

for(i in 1:50) {PG=PG*0.5; print(PG)}

# EXERCÍCIOS

# 1) Use o "for" para obter a soma de uma PG infinita de razão < 1.

# 2) Use o "for" para apresentar todos os arranjos possíveis (com

# repetição) para duas letras vogais.

# 3) Estude a função demo.pal() abaixo, retirada da seção Examples de

# help(rainbow).

#================ FUNÇÃO demo.pal() =====================================

#------ Some palettes ------------

demo.pal <-

function(n, border = if (n<32) "light gray" else NA,

main = paste("color palettes; n=",n),

ch.col = c("rainbow(n, start=.7, end=.1)", "heat.colors(n)",

"terrain.colors(n)", "topo.colors(n)",

"cm.colors(n)"))

{

nt <- length(ch.col)

i <- 1:n; j <- n / nt; d <- j/6; dy <- 2*d

plot(i,i+d, type="n", yaxt="n", ylab="", main=main)

for (k in 1:nt) {

rect(i-.5, (k-1)*j+ dy, i+.4, k*j,

col = eval(parse(text=ch.col[k])), border = border)

text(2*j, k * j +dy/4, ch.col[k])

}

}

n <- if(.Device == "postscript") 64 else 16

# Since for screen, larger n may give color allocation problem

demo.pal(n)

#================ FIM DA FUNÇÃO demo.pal() ==============================

# USANDO AS ESTRUTURAS for E if

# Imprimindo os números entre 12 e 30 divisíveis por 3

for (i in 12:30){

if (i%%3==0) {

print(i)

}

}

# CONTANDO O NÚMERO DE ALUNOS POR SEXO A PARTIR DO DATA FRAME alunos

fem = 0; mas = 0

for (i in 1:length(alunos$Sexo)) {

if (alunos$Sexo[i]=="F") fem = fem + 1

if (alunos$Sexo[i]=="M") mas = mas + 1

}

mas; fem

Page 33: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 32

32

# 5.3 – A estrutura while

# USANDO A ESTRUTURA while

# CONTANDO O NÚMERO DE TENTATIVAS ATÉ QUE OCORRA O PRIMEIRO SUCESSO

dado=sample(1:6, 1)

n=1

while(dado != 5){

dado=sample(1:6, 1)

n=n+1

}

print(paste("Foram necessários", n,

"lançamentos do dado para se obter o primeiro 5"))

# EXERCÍCIOS

# 1) Melhorar o programa acima prevendo o caso de sucesso no primeiro

# lançamento (usar "Foi" em vez de "Foram", etc.)

# 2) Simular 100 repetições do experimento anterior e apresentar o

# percentual de obtenção de sucesso na terceira tentativa.

# 3) Comparar o percentual obtido em 2) com o resultado da probabilidade

# de ocorrer sucesso na terceira tentativa.

# 5.4 – A estrutura repeat

# USANDO A ESTRUTURA repeat

repeat {

cat("Digite um número (zero para terminar)")

n <- scan(n=1)

if (n == 0) break

if (n < 0) print(c("O número é menor que zero"))

if (n > 0) {

print(c("O número é maior que zero"))

if (n%%3==0) print(c("O número é múltiplo de 3"))

}

}

# EXERCÍCIOS DA UNIDADE V

# 1) Usando as estruturas de programação e os recursos gráficos,

# reproduza as figuras abaixo.

Dado 1 Dado 2

Dado 3 Dado 4

5 10 15

color palettes; n= 16

i

rainbow(n, start=.7, end=.1)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

heat.colors(n)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

terrain.colors(n)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

topo.colors(n)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

cm.colors(n)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

colors()[1:n]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

colors()[(n+1):(n+16)]

17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

Page 34: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 33

33

# UNIDADE VI: PROBABILIDADE

# 6.1 – Seleção de amostras aleatórias

# USANDO A FUNÇÃO sample()

# Selecionando uma Amostra Aleatória Simples (sem reposição) de

# tamanho n = 5 de uma população de N = 10 unidades:

sample(1:10, 5)

# SELECIONANDO UMA AMOSTRA ALEATÓRIA SIMPLES (COM REPOSIÇÃO) DE

# TAMANHO n = 5 DE UMA POPULAÇÃO DE N = 10 UNIDADES

sample(1:10, 5, replace=T)

# SIMULANDO O LANÇAMENTO DE UMA MOEDA HONESTA

sample(c("Cara", "Coroa"), 5, replace=T)

# SIMULANDO O LANÇAMENTO DE UMA MOEDA DESONESTA COM P(CARA)=0.6

table(sample(c("Cara", "Coroa"), 1000, replace=T, prob=c(0.6,0.4)))

# EXERCÍCIOS

# 1) Com apenas uma linha de comando, calcule o peso médio para uma

# amostra de 5 alunos escolhidos aleatoriamente sem reposição

# dentre os alunos do nosso banco de dados.

# 2) Simule o Teorema do Limite Central, usando o nosso banco de dados.

# 6.2 – Funções para análise combinatória

# CALCULANDO O NÚMERO DE PERMUTAÇÕES DE 3 ELEMENTOS

factorial(3)

# CALCULANDO O NÚMERO DE ARRANJOS DE 7 ELEMENTOS TOMADOS 3 A 3

# Obs: A{7,3} = 7! / (7 - 3)! = 7 x 6 x 5 x 4! / 4! = 7 x 6 x 5

prod(7:5)

# CALCULANDO O NÚMERO DE COMBINAÇÕES DE 10 ELEMENTOS TOMADOS 4 A 4

choose(10, 4) # confirmando o cálculo:

factorial(10)/(factorial(4)*factorial(6)) # ou melhor:

prod(10:7)/factorial(4)

# LISTANDO TODAS AS COMBINAÇÕES POSSÍVEIS ENTRE ELEMENTOS DE UM CONJUNTO

combn(letters[1:10], 3) # confirmando o número de combinações:

choose(10, 3)

combn(c("João", "José", "Maria", "Rita"), 2)

choose(4, 2)

combn(sample(1:60,10), 6) # combinações para jogar na Mega-Sena

choose(10, 6)

combn(6, 3)

choose(6, 3)

# EXERCÍCIO

# Encontre todos as combinações de jogos da Mega-Sena para os números:

# 1,5,12,25,36,45,55,60

Page 35: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 34

34

# 6.3 – Distribuições de probabilidade

# 6.3.1 – Variáveis aleatórias discretas

# CALCULANDO PROBABILIDADES DA DISTRIBUIÇÃO BINOMIAL

dbinom(1,3,0.5) # ou cálculo de P(X=1) para X~B(n=3,p=0.5):

choose(3,1)*0.5^3

dbinom(0.1,3,0.5) # P(X=0.1)-> erro pois a v.a. X é discreta!

plot(0:10, dbinom(0:10,10,0.5), type="h", lwd=4, lend=1)

# CALCULANDO PROBABILIDADES DA DISTRIBUIÇÃO ACUMULADA BINOMIAL

pbinom(1,3,0.5) # ou cálculo de P(X<=1):

choose(3,0)*0.5^3 + choose(3,1)*0.5^3

pbinom(0.1,3,0.5) # não erro -> é viável o cálculo de P(X<=0.1)

plot(-1:4, pbinom(-1:4,3,0.5), type="s")

points(0:3, pbinom(0:3,3,0.5),pch=16)

points(0:3, pbinom(-1:2,3,0.5))

# CALCULANDO QUANTIS DA DIST. BINOMIAL - FUNÇÃO INVERSA DA pbinom()

qbinom(0.5,3,0.5)

qbinom(0.51,3,0.5)

# OBTENDO VALORES ALEATÓRIOS DA DISTRIBUIÇÃO BINOMIAL

rbinom(5,10,0.5)

table(rbinom(100,10,0.5))

barplot(table(rbinom(10000,10,0.5)))

# EXERCÍCIOS

# 1) Crie uma função idêntica à pbinom(), usando function, for e

# dbinom;

# 2) Crie exemplos de utilização das funções dpois(), ppois(),

# qpois() e rpois().

# DISTRIBUIÇÃO BINOMIAL: binom()

x11(20,8); par(mfrow=c(1,3))

a1=20; a2=0.8

tab=prop.table(table(rbinom(10000,a1,a2)))

barplot(tab,col="blue")

lim=range(as.numeric(names(tab)))

plot(lim[1]:lim[2],dbinom(lim[1]:lim[2],a1,a2),type="h",lwd=6,lend=1)

q=qbinom(0.5,a1,a2)

abline(v=q,col="red",lwd=2)

mtext("Mediana",1,at=q,col="red",cex=.7)

plot((lim[1]-1):(lim[2]+1),pbinom((lim[1]-1):(lim[2]+1),a1,a2),type="s")

# DISTRIBUIÇÃO BINOMIAL NEGATIVA: nbinom()

x11(20,8); par(mfrow=c(1,3))

a1=20; a2=0.8

tab=prop.table(table(rnbinom(10000,a1,a2)))

barplot(tab,col="blue")

lim=range(as.numeric(names(tab)))

plot(lim[1]:lim[2],dnbinom(lim[1]:lim[2],a1,a2),type="h",lwd=6,lend=1)

q=qnbinom(0.5,a1,a2)

abline(v=q,col="red",lwd=2)

mtext("Mediana",1,at=q,col="red",cex=.7)

plot((lim[1]-1):(lim[2]+1),pnbinom((lim[1]-1):(lim[2]+1),a1,a2),type="s")

Page 36: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 35

35

# DISTRIBUIÇÃO GEOMÉTRICA: geom()

x11(20,8)

par(mfrow=c(1,3))

a1=.2

tab=prop.table(table(rgeom(500,a1)))

barplot(tab,col="blue")

lim=range(as.numeric(names(tab)))

plot(lim[1]:lim[2],dgeom(lim[1]:lim[2],a1),type="h",lwd=6,lend=1)

q=qgeom(0.5,a1)

abline(v=q,col="red",lwd=2)

mtext("Mediana",1,at=q,col="red",cex=.7)

plot((lim[1]-1):(lim[2]+1),pgeom((lim[1]-1):(lim[2]+1),a1),type="s")

# DISTRIBUIÇÃO HIPERGEOMÉTRICA: hyper()

x11(20,8)

par(mfrow=c(1,3))

a1=15; a2=20; a3=10

tab=prop.table(table(rhyper(1000,a1,a2,a3)))

barplot(tab,col="blue")

lim=range(as.numeric(names(tab)))

plot(lim[1]:lim[2],dhyper(lim[1]:lim[2],a1,a2,a3),type="h",lwd=6,lend=1)

phyper(6,a1,a2,a3)

q=qhyper(0.5,a1,a2,a3)

abline(v=q,col="red",lwd=2)

mtext("Mediana",1,at=q,col="red",cex=.7)

plot((lim[1]-1):(lim[2]+1),phyper((lim[1]-1):(lim[2]+1),a1,a2,a3),type="s")

# DISTRIBUIÇÃO POISSON: pois()

x11(20,8)

par(mfrow=c(1,3))

a1=5

tab=prop.table(table(rpois(10000,a1)))

barplot(tab,col="blue")

lim=range(as.numeric(names(tab)))

plot(lim[1]:lim[2],dpois(lim[1]:lim[2],a1),type="h",lwd=6,lend=1)

q=qpois(0.5,a1)

abline(v=q,col="red",lwd=2)

mtext("Mediana",1,at=q,col="red",cex=.7)

plot((lim[1]-1):(lim[2]+1),ppois((lim[1]-1):(lim[2]+1),a1),type="s")

# SIMULANDO A DISTRIBUIÇÃO UNIFORME DISCRETA, USANDO sample()

x11(20,8)

par(mfrow=c(1,3))

a1=1

a2=6

tab=prop.table(table(sample(a1:a2,10, rep=T)))

barplot(tab,col="blue")

lim=range(as.numeric(names(tab)))

plot(a1:a2,rep(1/(a2-a1+1),length(a1:a2)),type="h",lwd=6,lend=1)

q=sum(a1:a2)/length(a1:a2)

abline(v=q,col="red",lwd=2)

mtext("Mediana",1,at=q,col="red",cex=.7)

plot(a1:a2,cumsum(rep(1/6,6)),type="s")

Page 37: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 36

36

# 6.3.1 – Variáveis aleatórias contínuas

# ESTUDANDO A DISTRIBUIÇÃO NORMAL:

x11(20,6)

par(mfrow=c(1,3))

a1=20; a2=5

gera=rnorm(100,a1,a2)

hist(gera,prob=T)

lines(density(gera))

rug(gera)

x=seq(0,40,0.01)

y=dnorm(x,a1,a2)

plot(x,y,col=4,type="l",lwd=2)

x1=seq(0,25,0.01)

y1=dnorm(x1,a1,a2)

polygon(c(x1,25,0),c(y1,0,0),col="red")

text(a1-2,0.01,paste("P(X<=25) = ", round(pnorm(25,a1,a2),2)), font=2,

cex=1.2, col="white")

plot(x,pnorm(x,a1,a2))

p=pnorm(25,a1,a2)

q=qnorm(p,a1,a2)

points(q,pnorm(25,a1,a2),pch=16,col=2,cex=2.5)

text(32,0.75,paste("(",25,",",round(p,2),")"),font=2,cex=2,col="red")

abline(v=qnorm(0.8413,a1,a2),h=pnorm(25,a1,a2),col="red")

# APRESENTANDO O GRÁFICO DA FDP NORMAL MULTIVARIADA:

x = y = seq(-3, 3, length = 70)

mult.normal.pad = function(x, y) exp(-(x^2-x*y+y^2)/2)/sqrt(2*pi)

z = outer(x, y, mult.normal.pad)

persp(x, y, z, theta=20, phi=30, expand=0.4, col="lightblue")

# GERANDO AMOSTRAS ALEATÓRIAS DE UMA NORMAL MULTIVARIADA:

library(MASS)

m1 = m2 = 10; v1 = v2 = 4; r = 0.7

co = r*sqrt(v1)*sqrt(v2)

X=mvrnorm(n = 50, mu=c(m1, m2), Sigma=matrix(c(v1,co,co,v2),ncol=2))

m1 = m2 = 20; v1 = 4; v2 = 9; r = -0.7

co = r*sqrt(v1)*sqrt(v2)

Y=mvrnorm(n = 50, mu=c(m1, m2), Sigma=matrix(c(v1,co,co,v2),ncol=2))

plot(X,pch=1, xlim=c(0,30),ylim=c(0,30))

points(Y,pch=2)

# OUTRAS DISTRIBUIÇÕES DE VARIÁVEIS ALEATÓRIAS CONTÍNUAS:

# DISTRIBUIÇÃO BETA: beta()

x11(20,8)

par(mfrow=c(1,2))

a1=4; a2=5; a3=2

hist(rbeta(1000,a1,a2,a3),prob=T)

x=seq(0,1,0.01)

y=dbeta(seq(0,1,0.01),a1,a2,a3)

lines(x,y,xpd=T,col=4,lwd=2)

(q=qbeta(0.5,a1,a2,a3))

abline(v=q,col="red",lwd=2)

text(q,0.05,"Mediana",pos=4,col="red")

prob=pbeta(x,a1,a2,a3)

plot(x,prob,type="l")

Page 38: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 37

37

# DISTRIBUIÇÃO CAUCHY: cauchy()

x11(20,8); par(mfrow=c(1,2))

a1=0; a2=1

hist(rcauchy(50,a1,a2),prob=T)

x=seq(-40,40,0.1)

y=dcauchy(x,a1,a2)

lines(x,y,xpd=T,col=4,lwd=2)

(q=qcauchy(0.5,a1,a2))

abline(v=q,col="red",lwd=2)

text(q,0.005,"Mediana",pos=4,col="red")

prob=pcauchy(x,a1,a2)

plot(x,prob,type="l")

# DISTRIBUIÇÃO QUI-QUADRADO: chisq()

x11(20,8); par(mfrow=c(1,2))

a1=4; ncp=1

hist(rchisq(1000,a1,ncp),prob=T)

x=seq(0,15,0.01); y=dchisq(x,a1,ncp)

lines(x,y,xpd=T,col=4,lwd=2)

(q=qchisq(0.5,a1,ncp))

abline(v=q,col="red",lwd=2)

text(q,0.03,"Mediana",pos=4,col="red")

prob=pchisq(x,a1,ncp)

plot(x,prob,type="l")

# VERIFICANDO A RELAÇÃO ENTRE AS DISTRIBUIÇÕES QUI-QUADRADO E NORMAL:

hist((rnorm(100000)^2),prob=T) # (Normal(0,1))^2 = Qui-quadrado(1):

y=dchisq(seq(0,15,0.01),1,0)

lines(x,y,xpd=T,col=4,lwd=2)

# DISTRIBUIÇÃO EXPONENCIAL: exp()

x11(20,8); par(mfrow=c(1,2))

a1=1

hist(rexp(1000,a1),prob=T)

x=seq(0,10,0.01)

y=dexp(x,a1)

lines(x,y,xpd=T,col=4,lwd=2)

(q=qexp(0.5,a1))

abline(v=q,col="red",lwd=2)

text(q,0.03,"Mediana",pos=4,col="red")

prob=pexp(x,a1)

plot(x,prob,type="l")

# DISTRIBUIÇÃO F DE SNEDECOR: f()

x11(20,8); par(mfrow=c(1,2))

a1=18; a2=10

hist(rf(500,a1,a2),prob=T)

x=seq(0,10,0.01)

y=df(x,a1,a2)

lines(x,y,xpd=T,col=4,lwd=2)

(q=qf(0.5,a1,a2))

abline(v=q,col="red",lwd=2)

text(q,0.015,"Mediana",pos=4,col="red")

prob=pf(x,a1,a2)

plot(x,prob,type="l")

Page 39: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 38

38

# DISTRIBUIÇÃO GAMA: gamma()

x11(20,8)

par(mfrow=c(1,2))

a1=18; a2=10

hist(rgamma(500,a1,a2),prob=T)

x=seq(0,10,0.01)

y=dgamma(x,a1,a2)

lines(x,y,xpd=T,col=4,lwd=2)

(q=qgamma(0.5,a1,a2))

abline(v=q,col="red",lwd=2)

text(q,0.02,"Mediana",pos=4,col="red")

prob=pgamma(x,a1,a2)

plot(x,prob,type="l")

# DISTRIBUIÇÃO LOG-NORMAL: lnorm()

x11(20,8)

par(mfrow=c(1,2))

a1=3; a2=.2

hist(rlnorm(500,a1,a2),prob=T)

x=seq(10,50,0.01)

y=dlnorm(x,a1,a2)

lines(x,y,xpd=T,col=4,lwd=2)

(q=qlnorm(0.5,a1,a2))

abline(v=q,col="red",lwd=2)

text(q,0.002,"Mediana",pos=4,col="red")

prob=plnorm(x,a1,a2)

plot(x,prob,type="l")

# DISTRIBUIÇÃO LOGÍSTICA: logis()

x11(20,8)

par(mfrow=c(1,2))

a1=3; a2=.2

hist(rlogis(500,a1,a2),prob=T)

x=seq(0,5,0.01)

y=dlogis(x,a1,a2)

lines(x,y,xpd=T,col=4,lwd=2)

(q=qlogis(0.5,a1,a2))

abline(v=q,col="red",lwd=2)

text(q,0.05,"Mediana",pos=4,col="red")

prob=plogis(x,a1,a2)

plot(x,prob,type="l")

# DISTRIBUIÇÃO NORMAL: norm()

x11(20,8)

par(mfrow=c(1,2))

a1=20; a2=5

hist(rnorm(1000,a1,a2),prob=T)

x=seq(0,40,0.01)

y=dnorm(x,a1,a2)

lines(x,y,xpd=T,col=4,lwd=2)

(q=qnorm(0.5,a1,a2))

abline(v=q,col="red",lwd=2)

text(q,0.05,"Mediana",pos=4,col="red")

prob=pnorm(x,a1,a2)

plot(x,prob,type="l")

Page 40: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 39

39

# DISTRIBUIÇÃO T DE STUDENT: t()

x11(20,8)

par(mfrow=c(1,2))

a1=20

ncp=15

hist(rt(1000,a1,ncp),prob=T)

x=seq(-4,4,0.01)

y=dt(x,a1,ncp)

lines(x,y,xpd=T,col=4,lwd=2)

(q=qt(0.5,a1,ncp))

abline(v=q,col="red",lwd=2)

text(q,0.03,"Mediana",pos=4,col="red")

prob=pt(x,a1,ncp)

plot(x,prob,type="l")

# DISTRIBUIÇÃO UNIFORM: unif()

x11(20,8)

par(mfrow=c(1,2))

a1=20

a2=40

hist(runif(1000,a1,a2),prob=T)

x=seq(0,50,0.01)

y=dunif(x,a1,a2)

lines(x,y,xpd=T,col=4,lwd=2)

(q=qunif(0.5,a1,a2))

abline(v=q,col="red",lwd=2)

text(q,0.01,"Mediana",pos=4,col="red")

prob=punif(x,a1,a2)

plot(x,prob,type="l")

# DISTRIBUIÇÃO WEIBULL: weibull()

x11(20,8)

par(mfrow=c(1,2))

a1=4

a2=5

hist(rweibull(1000,a1,a2),prob=T)

x=seq(0,10,0.01)

y=dweibull(x,a1,a2)

lines(x,y,xpd=T,col=4,lwd=2)

(q=qweibull(0.5,a1,a2))

abline(v=q,col="red",lwd=2)

text(q,0.01,"Mediana",pos=4,col="red")

prob=pweibull(x,a1,a2)

plot(x,prob,type="l")

# TRABALHO: Crie outros exemplos de utilização das funções abaixo

# (precedidas de r, d, p, q):

# 1. beta; 2. binom; 3. cauchy; 4. chisq; 5. exp; 6. f; 7. gamma;

# 8. geom; 9. hyper; 10. lnorm; 11. logis; 12. nbinom; 13. norm;

# 14. pois; 15. t; 16. unif; 17. weibull.

Page 41: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 40

40

# EXERCÍCIOS DA UNIDADE VI

# 1) Usando as funções dedicadas à distribuição Binomial, dentre

# outras, reproduza uma figura semelhante à seguinte.

# 3) Melhore a apresentação de cada uma das distribuições de variáveis

# aleatórias discretas apresentadas nesta unidade de forma semelhante

# ao exercício anterior.

# 2) Usando a função sample() dentre outras, simule a distribuição

# uniforme discreta, produzindo uma figura semelhante à seguinte.

Page 42: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 41

41

# 4) Usando as funções dedicadas à distribuição Exponencial, dentre

# outras, reproduza uma figura semelhante à seguinte.

Page 43: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 42

42

# UNIDADE VII: ANÁLISE DESCRITIVA

# 7.1 – Estatísticas descritivas simples

# USANDO OS DADOS DOS ALUNOS

attach(alunos)

min(Altura)

max(Altura)

length(Altura)

mean(Altura)

median(Altura)

var(Altura)

sd(Altura)

quantile(Altura)

perc = seq(0, 1, 0.1)

quantile(Altura, perc)

fivenum(Peso)

range(Peso)

diff(range(Peso))

diff(Peso)

cor(Peso, Altura)

cov(Peso, Altura)

summary(Altura)

summary(alunos)

# CONSTRUINDO RESULTADOS PERSONALIZADOS

# COMPARANDO ESTATÍSTICAS DESCRITIVAS PARA DUAS VARIÁVEIS

resumo = function(Var1, Var2) {

mp = mean(Var1, na.rm=T)

mep = median(Var1, na.rm=T)

sp = sd(Var1, na.rm=T)

mm = mean(Var2, na.rm=T)

mem = median(Var2, na.rm=T)

sm = sd(Var2, na.rm=T)

d = data.frame(Média=c(mp,mm), Desvio.padrão=c(sp,sm),

Mediana=c(mep,mem))

c = cor(Var2, Var1, use="pairwise.complete.obs")

return(list(Estatísticas.descritivas=d,Correlação=c))

}

resumo(Alt_pai, Alt_mae)

# 7.2 – Representação tabular

# CONSTRUINDO TABELAS PARA VARIÁVEIS QUALITATIVAS

attach(alunos)

table(Sexo)

prop.table(table(Sexo))

table(Lazer)

prop.table(table(Lazer))

t = table(Sexo, Lazer)

prop.table(t,1)

prop.table(t,2)

margin.table(t, 1)

margin.table(t, 2)

Page 44: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 43

43

# CONSTRUINDO TABELAS DE CONTINGÊNCIA COM TOTAL (VALORES ABSOLUTOS)

tc=table(alunos$Sexo, alunos$Lazer)

tcT=rbind(tc, Total=apply(tc,2,sum))

(tcT=cbind(tcT, Total=apply(tcT,1,sum)))

class(tc)

class(tcT)

# CONSTRUINDO TABELAS DE CONTINGÊNCIA COM TOTAL (VALORES PERCENTUAIS)

(tc=table(alunos$Sexo, alunos$Lazer))

(tcP=round(100*prop.table(tc, 1), 1))

(marg=round(100*prop.table(table(alunos$Lazer)), 1))

(tcPT=cbind(tcP, Total=apply(tcP, 1, sum)))

(tcPT=rbind(tcPT, Total=c(marg, sum(marg))))

# CONSTRUINDO TABELAS PARA VARIÁVEIS QUANTITATIVAS

attach(alunos)

table(cut(Peso, b = 5))

table(cut(Peso, breaks = 10*(4:11)))

table(cut(Peso, breaks = 10*(4:11), right = FALSE))

# CRUZANDO VARIÁVEIS QUALITATIVAS VERSUS QUANTITATIVAS

attach(alunos)

table(Sexo, cut(Peso, breaks = 10*(4:11), right = FALSE))

# 7.3 – Representação gráfica

# 7.3.1 – Representação gráfica para variáveis qualitativas

# CONSTRUINDO UM GRÁFICO DE PIZZA

attach(alunos)

pie(table(Sexo), col= c("red", "green"))

legend(x="bottomright", c("Feminino", "Masculino"), col=2:3, pch=15)

title("Sexo")

# CONSTRUINDO UM GRÁFICO DE PIZZA TRIDIMENSIONAL

library(plotrix) # antes de carregar deve-se instalar o pacote "plotrix"

pie3D(table(Sexo), col= c("red", "green"))

# CONSTRUINDO GRÁFICOS DE COLUNAS

op=par(mfrow=c(2,2))

barplot(table(Sexo, Lazer))

barplot(prop.table(table(Lazer, Sexo),2))

barplot(table(Sexo, Lazer), beside=T)

mosaicplot(table(Sexo, Lazer), color=T)

par(op)

# CONSTRUINDO UM GRÁFICO DE BARRAS COM RÓTULOS

attach(alunos)

tab=table(Lazer)

par(fig=c(.2,1,0,1))

barplot(tab, horiz=T, xlim=c(0, max(tab)+10), las=2)

text(tab[1:dim(tab)]+2,seq(0.7,0.7+(dim(tab)-1)*1.2,1.2),tab[1:dim(tab)])

title("Opção de Lazer para Alunos\n das Turmas de Introdução ao R")

Page 45: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 44

44

# CONSTRUINDO UM GRÁFICO DE COLUNAS COM RÓTULOS

tab=table(Idade)

barplot(tab, ylim=c(0, max(tab)+10))

d=dim(tab)

text(seq(0.7,0.7+(dim(tab)-1)*1.2,1.2), tab[1:d], tab[1:d], pos=3)

title("Idade dos Alunos das Turmas de Introdução ao R")

# CONSTRUINDO UM GRÁFICO DE COLUNAS PARA DUAS VARIÁVEIS QUALITATIVAS

tab=table(Lazer)

tc=table(Sexo,Lazer)

tcT=rbind(tc,Total=apply(tc,2,sum))

tcT=cbind(tcT,Total=apply(tcT,1,sum))

p2=prop.table(tc,1)*100

pm=prop.table(tab)*100

win.graph(width=9)

barplot(rbind(p2,pm), beside=T, font.lab=2, col=c(2,4,"gray"),

xlab="Opção de Lazer", ylab="Percentual sobre o Sexo")

legend("topright", col=c(2,4,"gray"), pch=15, cex=1.2,

legend=c("Feminino","Masculino","Perfil Médio"))

title("Opção de Lazer segundo o Sexo")

# 7.3.1 – Representação gráfica para variáveis quantitativas

# CONSTRUINDO DIAGRAMAS DE RAMOS E FOLHAS

attach(alunos)

stem(Altura,scale=1)

stem(Altura,scale=2)

stem(Peso,scale=1)

stem(Peso,scale=2)

stem(rnorm(1000), scale=1)

stem(rnorm(1000), scale=2)

# CONSTRUINDO HISTOGRAMAS

attach(alunos)

par(mfrow=c(2,2))

hist(Peso, col="springgreen2")

br=seq(40,120,20); hist(Peso, breaks=br, col="orchid")

hist(Peso, breaks=seq(40,120,10), col="salmon2")

hist(Peso, breaks=seq(40,120,2), prob=T, col="lightblue2")

curve(dnorm(x, mean(Peso), sd(Peso)), add=T, xpd=T, col=4, lwd=2)

# CONSTRUINDO UM HISTOGRAMA COM LEGENDA

hist(Peso, xlab="Peso dos Alunos",

ylab="Frequência",main=

"Pesos dos Alunos de Estatística",

breaks=seq(40,120,10),col="wheat", axes=F)

axis(side=1,at=seq(40,120,10)); axis(side=2); box()

legend(x="topright",legend=paste("Média = ",

round(mean(Peso,na.rm=T),1),

"\nD. Padrão = ",round(sd(Peso, na.rm=T),1),

"\nMínimo = ",min(Peso, na.rm=T),

"\nMáximo = ",max(Peso, na.rm=T),

"\nN = ",length(Peso)), bty="n")

Page 46: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 45

45

# CONSTRUINDO HISTOGRAMAS PARA SUBGRUPOS

attach(alunos)

peso.sexo=split(Peso,Sexo)

par(mfrow=c(2,1))

hist(peso.sexo$F, breaks=seq(40,105,5))

abline(v=median(peso.sexo$F),lwd=3,col="red")

mtext("Mediana", at=median(peso.sexo$F), side=1, line=0, col="red")

hist(peso.sexo$M, breaks=seq(40,105,5))

abline(v=median(peso.sexo$M),lwd=3,col="red")

mtext("Mediana", at=median(peso.sexo$M), side=1, line=0, col="red")

# CONSTRUINDO UMA OGIVA DE GALTON

x=rnorm(100)

h=hist(x, br=-4:4, plot=F); h

plot(h$breaks,c(0,cumsum(h$count)),type="s")

# CONSTRUINDO GRÁFICOS QUANTIL-QUANTIL

attach(alunos)

op=par(mfrow=c(2,2))

y = rnorm(100); qqnorm(y); qqline(y)

y = rexp(100); qqnorm(y); qqline(y)

qqnorm(Peso, main="Peso"); qqline(Peso)

qqplot(rnorm(20),rexp(1000), main="Exemplo do qqplot")

# ESTUDANDO A CONSTRUÇÃO DE UM BOX PLOT, USANDO stripchart

par(op); boxplot(Idade, ylab="Idade")

stripchart(Idade, add=T, vertical=T, pch="-", col="red" , cex=1.5)

# CONSTRUINDO E ESTUDANDO BOXPLOTS

attach(alunos)

boxplot.stats(Peso) # ou: fivenum(Peso)

op=par(mfrow=c(2,2))

boxplot(Peso, notch=T, ylab="Peso", col="gray")

boxplot(Peso, xlab="Peso", col=4, horizontal=T)

boxplot(Peso~Sexo, ylab="Peso", col=2:3)

boxplot(Peso~Sexo, ylab="Peso", border=2:3)

stripchart(Peso~Sexo, ylab="Peso", add=T, vert=T, pch="-")

par(op)

# CONSTRUINDO UM DIAGRAMA DE DISPERSÃO COM RETA DE REGRESSÃO

plot(Altura, Peso, pch=as.character(Sexo))

title("Diagrama de Dispersão entre Peso e Altura segundo o Sexo")

abline(lm(Peso~Altura))

identify(Altura, Peso) # clique com o mouse no ponto para identicá-lo

locator(5) # clique com o mouse em 5 pontos para obter Altura e Peso

# CONSTRUINDO UMA MATRIZ COM DIAGRAMAS DE DISPERSÃO

pairs(alunos[c(2,4:9)])

7.3.2 – Representação gráfica de variáveis mistas

# CONSTRUINDO UM BOXPLOT (VARIÁVEL QUANTITATIVA VERSUS QUALITATIVA)

attach(alunos)

boxplot(Peso ~ Sexo, xlab="Sexo", ylab="Peso (kg)", col=c("red","blue"))

title("Peso segundo o Sexo")

Page 47: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 46

46

# CONSTRUINDO UM BOXPLOT (VARIÁVEL QUANTITATIVA VERSUS DUAS QUALITATIVAS)

boxplot(Idade ~ Sexo + Lazer, xlab="Opção de Lazer e Sexo", ylab="Idade",

col=c("red","blue"))

title("Idade segundo Opção de Lazer e Sexo ")

# CONSTRUINDO UM GRÁFICO DE INTERAÇÃO ENTRE VARIÁVEIS

interaction.plot(Lazer, Sexo, Idade, xlab="Opção de Lazer",

ylab="Idade Média",trace.label=c("Sexo"))

title("Idade Média segundo Opção de Lazer e Sexo")

# EXERCÍCIOS DA UNIDADE VII

# 1) Melhore a apresentação de cada um dos gráficos desta unidade.

# 2) Com os dados dos alunos, produza uma saída para Sexo x Peso

# semelhante a:

# Sexo [40,50) [50,60) [60,70) [70,80) [80,90) [90,100) [100,110)

# F 8.2 16.5 10.6 1.2 1.2 0.0 0.0

# M 0.0 3.5 22.4 23.5 8.2 2.4 2.4

# 3) Usando os dados dos alunos, reproduza as figuras abaixo.

Page 48: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 47

47

# UNIDADE VIII: OPERAÇÕES COM VETORES E MATRIZES

# 8.1 – Operações com vetores

# REVENDO OPERAÇÕES ELEMENTARES COM VETORES

help("+")

(x = seq(2, 10 , 2))

(y = sample(1:10,5))

x + y

2*x # ou:

rep(2,5)*x

rep(2,4)*x # erro

3*(x+y)

x - y # ou:

x + (-1)*y

x + 2

x^2

log(x)

x*y

x/y

x%%y # resto da divisão

x%/%y # divisão inteira

# CALCULANDO O PRODUTO INTERNO ENTRE VETORES

help("%*%")

x%*%y

# 8.2 – Operações com matrizes

# REALIZANDO OPERAÇÕES ELEMENTARES COM MATRIZES

(A = matrix(1:9, nrow=3))

(B = matrix(seq(2,18, 2), nrow=3))

A + B

4*A

A - B

# OBTENDO A TRANSPOSTA DE UMA MATRIZ

t(A)

# OBS: a função t também pode ser usada para transpor data frames

t(alunos[1:5,1:8]) # ou tabelas:

t(table(Sexo,Lazer))

# REALIZANDO MULTIPLICAÇÃO ENTRE MATRIZES

A%*%B # é diferente de:

A*B

# CALCULANDO A SOMA DE ELEMENTOS DE UMA MATRIZ

c(1, 1, 1) %*% A # somando por coluna

A %*% c(1, 1, 1) # somando por linha

# CALCULANDO A MATRIZ (X'X)

X = matrix(c(rep(1,length(Altura)),Altura),ncol=2)

t(X)%*%X

Page 49: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 48

48

# CALCULANDO O DETERMINANTE DE UMA MATRIZ

(C = matrix(sample(1:9, 9, replace=T), nrow=3))

det(C)

# CALCULANDO A INVERSA DE UMA MATRIZ

solve(C)

# OBTENDO A SOLUÇÃO DO SISTEMA Cx = b

(b = c(3, 2, 1))

(x = solve(C, b))

# CALCULANDO AS ESTIMATIVAS DOS PARÂMETROS DE UM AJUSTE LINEAR,

# ENTRE O PESO E A ALTURA, USANDO A FÓRMULA B=((X'X)-1)*(X'Y)

attach(alunos)

X = matrix(c(rep(1,length(Altura)),Altura),ncol=2)

Y = Peso

(B = (solve(t(X)%*%X)) %*% (t(X)%*%Y)) # ou:

lm(Peso~Altura)

# 8.3 – Autovalores e autovetores de uma matriz

# OBTENDO OS AUTOVALORES DA MATRIZ C

auto = eigen(C)

auto$values

# OBTENDO OS AUTOVETORES DA MATRIZ C

auto$vectors

# UMA APLICAÇÃO DE AUTOVALORES E AUTOVETORES AOS DADOS DOS ALUNOS

attach(alunos)

AlturaP=(Altura-mean(Altura))/sd(Altura)

PesoP=(Peso-mean(Peso))/sd(Peso)

MatrizVar=cov(matrix(c(PesoP,AlturaP),ncol=2))

auto = eigen(MatrizVar)

auto$values

auto$vectors

auto$values[1]/sum(auto$values)

auto$values[2]/sum(auto$values)

par(mfrow=c(2,2))

plot(AlturaP,PesoP)

#plot((AlturaP-mean(AlturaP))/sd(AlturaP),(PesoP-mean(PesoP))/sd(PesoP))

points(AlturaP[4],PesoP[4],col=2,pch=16,cex=1.5)

points(AlturaP[47],PesoP[47],col=4,pch=16,cex=1.5)

plot(-1:1,-1:1, type="n")

abline(v=0,h=0)

points(auto$vectors[1,],auto$vectors[2,],pch=16)

lines(c(0,auto$vectors[1,1]),c(0,auto$vectors[2,1]))

lines(c(0,auto$vectors[1,2]),c(0,auto$vectors[2,2]))

CompPrinc=matrix(c(PesoP,AlturaP),ncol=2)%*%auto$vectors

plot(CompPrinc)

points(CompPrinc[4,1],CompPrinc[4,2],col=2,pch=16,cex=1.5)

points(CompPrinc[47,1],CompPrinc[47,2],col=4,pch=16,cex=1.5)

plot(CompPrinc[,1],rep(0,length(PesoP)))

points(CompPrinc[4,1],0,col=2,pch=16,cex=1.5)

points(CompPrinc[47,1],0,col=4,pch=16,cex=1.5)

Page 50: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 49

49

# EXERCÍCIO RESOLVIDO

# Calcule as notas necessárias na terceira avaliação para a aprovação por

# média dos alunos de uma turma, segundo o sistema de avaliação da UFRN.

# SOLUÇÃO

notas.2008.2=cbind(Aval1=c(0.5, 7.2, 8.2, 9.3, 6.7, 5.9, 9.8, 7.4,

9.1, 8.4, 3.7, 1.5, 9.2, 0.0, 4.2, 8.6,

5.8, 5.3, 8.4, 5.4, 0.9, 5.9, 0.4),

Aval2=c(0.0, 8.1, 5.8, 8.9, 6.1, 7.4, 8.8, 7.2,

7.9, 4.7, 3.1, 2.0, 1.9, 0.0, 2.0, 6.4,

3.7, 3.9, 6.9, 4.3, 0.8, 3.8, 0.0))

(105-notas.2008.2%*%c(4,5))/6

Page 51: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 50

50

REFERÊNCIAS Itano, F. Santos, S. M. Tópicos de Estatística utilizando R. Disponível

em <http://cran.r-project.org/doc/contrib/Itano-descriptive-stats.pdf>

Acesso em 05 ago. 2008.

Kabacoff, R. I. Quick-R. Disponível em <www.statmethods.net>. Acesso em

06 maio 2011.

Pacheco, A. G. F., Cunha, G. M., Andreozzi, V. L. Aprendendo R.

Disponível em <http://marcosfs2006.googlepages.com/Rbasico2005.pdf>.

Acesso em 31 jul. 2008.

Reis, A. F. Noções básicas de S-PLUS for windows. Disponível em < http://eagle.ufrj.br/~hedibert/edna.pdf> Acesso em 05 ago. 2008.

Torgo, L. Introdução à Programação em R. Disponível em <http://cran.r-

project.org/doc/contrib/Torgo-ProgrammingIntro.pdf> Acesso em 05 ago.

2008.

Silva, D. N. Curso de introdução ao pacote estatístico R. Notas de aula,

Departamento de Estatística, UFRN.

Page 52: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 51

51

GLOSSÁRIO: Funções do R utilizadas nestas notas

- Operador aritmético de subtração

!= Operador lógico "diferente de"

%% Resto da divisão

%*% Multiplicação entre matrizes

%/% Quociente da divisão inteira

* Operador aritmético de multiplicação

/ Operador aritmético de divisão

? Fornece acesso à documentação do R (idêntica à

função help())

^ Operador aritmético de potenciação

+ Operador aritmético de soma

< Operador lógico "menor que"

<= Operador lógico "menor ou igual"

== Operador lógico "igual"

> Operador lógico "maior que"

>= Operador lógico "maior ou igual"

abline Adiciona uma ou mais linhas retas a um gráfico

abs Valor absoluto, módulo

apply Retorna um vetor, matriz ou lista aplicando uma

determinada função a uma matriz

args Retorna os argumentos de uma determinada função

arrows Plota uma seta

as Força um objeto a assumir uma determinada classe

asin Calcula o arco seno

acos Calcula o arco cosseno

apropos Procura por nomes de objetos em pacotes

instalados

atan Calcula o arco tangente

attach Acessa as variáveis de um banco de dados

axis Adiciona um eixo ao gráfico

barplot Cria um gráfico de barras horizontal ou vertical

box Adiciona uma caixa ao redor do gráfico

boxplot Cria um gráfico de caixas

by Equivalente à função tapply()

c Concatena elementos em um vetor

cbind Cria matriz a partir da concatenação das colunas

choose Combinação de elementos em análise combinatória

citation Citação de pacotes e publicações do R

class Retorna a classe de um objeto

close Fecha uma conexão aberta previamente

colnames Recupera ou define o nome de colunas de uma

matriz

colors Retorna o nome das cores que o R possui

contributors Descreve os autores das contribuições mais

significativas para o R

cor Correlação entre duas variáveis

cov Covariância entre duas variáveis

curve Desenha uma curva para a função determinada

cumsum Retorna a soma acumulada de um vetor

cut cumsum Transforma uma variável numérica em faixas do

Page 53: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 52

52

tipo "fator"

data Lista um conjunto de dados disponíveis no R

data.frame Cria um banco de dados

dbeta Retorna valores da densidade de probabilidade da

Distribuição Beta

dbinom Retorna probabilidades da Distribuição Binomial

dcauchy Retorna valores da densidade de probabilidade da

Distribuição de Cauchy

dchisq Retorna valores da densidade de probabilidade da

Distribuição Qui-quadrado

demo Lista as demonstrações disponíveis no R

density Gera estimativas de densidades pelo método de

Kernel

det Determinante de uma matriz

detach Desfaz o comando attach()

dev.interactive Testa se o gráfico é interativo

dev.next Torna ativa a próxima janela gráfica

dev.set Escolhe qual janela gráfica deve ficar ativa

dexp Retorna valores da densidade de probabilidade da

Distribuição Exponencial

diff Retorna as diferenças sucessivas de um vetor

dim Recupera ou determina dimensões de um objeto

df Retorna valores da densidade de probabilidade da

Distribuição F de Snedecor

dgamma Retorna valores da densidade de probabilidade da

Distribuição Gamma

dgeom Retorna probabilidades da Distribuição Geométrica

dhyper Retorna probabilidades da Distribuição

Hipergeométrica

dlnorm Retorna valores da densidade de probabilidade da

Distribuição Log-normal

dlogis Retorna valores da densidade de probabilidade da

Distribuição Logística

dnbinom Retorna probabilidades da Distribuição Binomial

Negativa

dnorm Retorna valores da densidade de probabilidade da

Distribuição Normal

dpois Retorna probabilidades da Distribuição de Poisson

dt Retorna valores da densidade de probabilidade da

Distribuição t de Student

dunif Retorna valores da densidade de probabilidade da

Distribuição Uniforme

dweibull Retorna valores da densidade de probabilidade da

Distribuição de Weibull

edit Invoca um editor de texto para um objeto do R

eigen Determina os autovalores e autovetores de uma

matriz

else Comando de programação com valor "então"

eval Avalia uma expressão - expression()

exp Calcula valores da função exponencial

expression Cria objetos com formato de expressão

factor Codifica um vetor como fator

factorial Fatorial de um número

fivenum Fornece os "5 números": min, Q1, mediana, Q3, max

Page 54: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 53

53

fix Invoca o editor do R e em seguida salva as

alterações no objeto

for Comando de programação "para"

format Formata dados

function Comando que possibilita criar uma função

grid Adiciona grade retangular a um gráfico existente

help Fornece acesso à documentação do R

help.start Fornece acesso à documentação do R em .html

hist Retorna o histograma dos valores especificados

identify Retorna a posição de um ponto com um clique do

mouse sobre o mesmo

if Comando de programação "se"

interaction.plot Cria um gráfico de perfis médios

is Testa se o objeto pertence a uma determinada

classe

ISOdate Converte do tipo caracter para data

lapply Aplica uma função a valores em um objeto da

classe lista

legend Adiciona uma legenda a objetos gráficos

length Retorna o tamanho de um objeto

LETTERS Constante contendo as letras maiúsculas do

alfabeto

letters Constante contendo as letras minúsculas do

alfabeto

levels Determina ou acessa os níveis de um fator

library Acessa pacotes do R

license Informações a respeito da licença para uso do R

lines Traça linhas em um objeto gráfico

lm Estima um modelo linear

load Carrega a área de trabalho guardada em um arquivo

loadhistory Carrega o histórico de comandos guardados em um

arquivo

locator Retorna as coordenadas de pontos com cliques do

mouse sobre os mesmos

log Logaritmo neperiano

log10 Logaritmo na base 10

ls Lista os objetos contidos na área de trabalho

margin.table Retorna a marginal de uma tabela

matrix Cria uma matriz

max Retorna o valor máximo de uma série de dados

mean Retorna a média aritmética de uma série de dados

median Retorna a mediana de uma série de dados

min Retorna o valor mínimo de uma série de dados

mode Classifica um objeto

mosaicplot Gera um gráfico do tipo mosaico

mtext Escreve texto em um dos quatro lados de um

gráfico

names Obtêm ou define nomes de um objeto

odbcConnectExcel Função utilizada para realizar a conexão entre o

R e o MS Excel

order Retorna a posição que cada elemento ocupa no

vetor para uma ordem crescente

par Define ou consulta os principais parâmetros

gráficos do R

Page 55: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 54

54

pbeta Retorna a probabilidade acumulada à esquerda de

uma Distribuição Beta

pbinom Retorna a probabilidade acumulada à esquerda de

uma Distribuição Binomial

pcauchy Retorna a probabilidade acumulada à esquerda de

uma Distribuição de Cauchy

pchisq Retorna a probabilidade acumulada à esquerda de

uma Distribuição Qui-quadrado

persp Gera um gráfico em terceira dimensão

pexp Retorna a probabilidade acumulada à esquerda de

uma Distribuição Exponencial

pexp Retorna a probabilidade acumulada à esquerda de

uma Distribuição Exponencial

pf Retorna a probabilidade acumulada à esquerda de

uma Distribuição F de Snedecor

pgamma Retorna a probabilidade acumulada à esquerda de

uma Distribuição Gamma

pgeom Retorna a probabilidade acumulada à esquerda de

uma Distribuição Geométrica

phyper Retorna a probabilidade acumulada à esquerda de

uma Distribuição Hipergeométrica

pie Gera um gráfico de setores (pizza)

plnorm Retorna a probabilidade acumulada à esquerda de

uma Distribuição Log-normal

plogis Retorna a probabilidade acumulada à esquerda de

uma Distribuição Logística

plot Gera um gráfico (inicialmente de dispersão)

plot.default Executa funções próximas do plot(), com acesso

mais detalhado no help. Ver "?plot.default"

pnbinom Retorna a probabilidade acumulada à esquerda de

uma Distribuição Binomial Negativa

pnorm Retorna a probabilidade acumulada à esquerda de

uma Distribuição Normal

points Adiciona um ou mais pontos a um gráfico

polygon Gera polígonos em um objeto gráfico

ppois Retorna a probabilidade acumulada à esquerda de

uma Distribuição de Poisson

print Imprime um objeto no console (default)

prod

Retorna o produto entre todos os valores de um

objeto

prop.table Apresenta as proporções de uma tabela gerada pela

função table()

pt Retorna a probabilidade acumulada à esquerda de

uma Distribuição t de Student

punif Retorna a probabilidade acumulada à esquerda de

uma Distribuição Uniforme

pweibull Retorna a probabilidade acumulada à esquerda de

uma Distribuição de Weibull

qbeta Retorna o quantil correspondente a uma

probabilidade acumulada à esquerda de uma

Distribuição Beta

qbinom Retorna o quantil correspondente a uma

probabilidade acumulada à esquerda de uma

Distribuição Binomial

Page 56: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 55

55

qcauchy Retorna o quantil correspondente a uma

probabilidade acumulada à esquerda de uma

Distribuição de Cauchy

qchisq Retorna o quantil correspondente a uma

probabilidade acumulada à esquerda de uma

Distribuição Qui-quadrado

qexp Retorna o quantil correspondente a uma

probabilidade acumulada à esquerda de uma

Distribuição Exponencial

qf Retorna o quantil correspondente a uma

probabilidade acumulada à esquerda de uma

Distribuição F de Snedecor

qgamma Retorna o quantil correspondente a uma

probabilidade acumulada à esquerda de uma

Distribuição Gamma

qgeom Retorna o quantil correspondente a uma

probabilidade acumulada à esquerda de uma

Distribuição Geométrica

qhyper Retorna o quantil correspondente a uma

probabilidade acumulada à esquerda de uma

Distribuição Hipergeométrica

qlnorm Retorna o quantil correspondente a uma

probabilidade acumulada à esquerda de uma

Distribuição Log-normal

qlogis Retorna o quantil correspondente a uma

probabilidade acumulada à esquerda de uma

Distribuição Logística

qnbinom Retorna o quantil correspondente a uma

probabilidade acumulada à esquerda de uma

Distribuição Binomial Negativa

qnorm Retorna o quantil correspondente a uma

probabilidade acumulada à esquerda de uma

Distribuição Normal

qpois Retorna o quantil correspondente a uma

probabilidade acumulada à esquerda de uma

Distribuição de Poisson

qqnorm Gráfico quantil-quantil para uma Distribuição

Normal

qqplot Gráfico quantil-quantil

qt Retorna o quantil correspondente a uma

probabilidade acumulada à esquerda de uma

Distribuição t de Student

quantile Retorna quantis amostrais (mediana, quartis,

percentis, etc.)

qunif Retorna o quantil correspondente a uma

probabilidade acumulada à esquerda de uma

Distribuição Uniforme

qweibull Retorna o quantil correspondente a uma

probabilidade acumulada à esquerda de uma

Distribuição de Weibull

range Fornece o mínimo e o máximo

rank Retorna qual a posição que o elemento do vetor

ocuparia se a sequência fosse cerscente

rbeta Gera valores aleatórios com base numa

Distribuição Beta

Page 57: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 56

56

rbind Acescenta linhas a uma matriz

rbinom Gera valores aleatórios com base numa

Distribuição Binomial

rcauchy Gera valores aleatórios com base numa

Distribuição de Cauchy

rchisq Gera valores aleatórios com base numa

Distribuição Qui-quadrado

read.spss Comando para lê arquivos formatado em SPSS

read.ssd Comando para lê arquivos formatado no SAS

read.table Comando para lê arquivos em formato de texto

rect Cria retângulos em uma janela gráfica

rep Repete elementos em um determinado objeto

repeat Comando de programação com o valor de "repita"

require Carrega um pacote do R

return Função atrelada criação de novas funções no R. Em

geral retorna a resposta de uma função criada

rev Inverte a ordem dos elementos de um objeto

rexp Gera valores aleatórios com base numa

Distribuição Exponencial

rf Gera valores aleatórios com base numa

Distribuição F de Snedecor

rgamma Gera valores aleatórios com base numa

Distribuição Gamma

rgeom Gera valores aleatórios com base numa

Distribuição Geométrica

rhyper Gera valores aleatórios com base numa

Distribuição Hipergeométrica

rlnorm Gera valores aleatórios com base numa

Distribuição Log-normal

rlogis Gera valores aleatórios com base numa

Distribuição Logística

rm Remove um ou mais objetos da área de trabalho

rnbinom Gera valores aleatórios com base numa

Distribuição Binomial Negativa

rnorm Gera valores aleatórios com base numa

Distribuição Normal

round Arredonda números

rownames Recupera ou define o nome de uma linha da matriz

rpois Gera valores aleatórios com base numa

Distribuição de Poisson

rt Gera valores aleatórios com base numa

Distribuição t de Student

rug Representa os pontos (uma dimensão) de um vetor

na lateral do gráfico ativo

runif Gera valores aleatórios com base numa

Distribuição Uniforme

rweibull Gera valores aleatórios com base numa

Distribuição de Weibull

sapply É uma versão amigável do lapply(), retornando uma

matriz ou um vetor, dependendo do caso

save.image Salva a área de trabalho de uma sessão do R

savehistory Salva o histórico de digitações da área de

trabalho do R

subset Crie um subconjuto de um data frame

Page 58: Notas de Aulas da Disciplina Introdução ao Rpetestatisticaufrn.weebly.com/uploads/8/3/6/6/... · 2.5 – Exportação para arquivos do Excel 2.6 – Importação de dados do SPSS,

# Notas de Aulas da Disciplina Introdução ao R – página 57

57

scan Ler dados para serem introduzidos em um vetor ou

lista

sd Calcula o desvio padrão

search Lista de pacotes disponíveis

segments Plota um segmento de reta

seq Gera uma sequência de valores

sin Calcula o seno

solve Calcula a inversa de uma matriz

sort Retorna o vetor ou fator em ordem crescente ou

decrescente

sqlFetch Funções usadas para importação e/ou exportação de

dados

sqlSabe Funções usadas para importação e/ou exportação de

dados

sqlTables Funções usadas para importação e/ou exportação de

dados

sqrt Rair quadrada de um valor

stem Produz ramo-e-folhas

str Fornece informações (resumo) de um objeto

stripchart Gráfico de pontos de uma variável quantitativa

segundo uma variável categórica

sum Retorna o somatório de uma séria e dados

summary Calcula algumas estatísticas básicas

symbols Gera símbolos diversos

t Transposta de uma matriz

table Gera uma tabela simples ou de dupla entrada

tapply Aplica uma determinada função a uma variável

segundo os níveis de um fator

text Adiciona um texto a um gráfico em coordenadas

especificadas

transform Modifica um data frame

var Retorna a variância de uma série de dados

while Comando de programação com a valor de "enquanto"

win.graph Abre uma janela gráfica vazia

with

Executa uma função (expressão) usando os dados

contidos em uma coluna de um data frame ou em um

elemento de uma lista, etc.

write.table Exporta dados para o formato texto

x11 Abre uma janela gráfica vazia