Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Introdução à Linguagem de Programação R: Exercícios e Exemplos de Código, Resumos de Estatística

Uma introdução à linguagem de programação r, com foco em exercícios práticos e exemplos de código. Aborda conceitos básicos como a criação de vetores, a manipulação de dados, a construção de gráficos e a aplicação de funções estatísticas. Ideal para estudantes que desejam aprender a usar o r para análise de dados e visualização.

Tipologia: Resumos

2023

Compartilhado em 30/03/2025

pedro-missa
pedro-missa 🇧🇷

1 documento

1 / 69

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE
CENTRO DE CIÊNCIAS EXATAS E DA TERRA
DEPARTAMENTO DE ESTATÍSTICA
Notas de Aulas de Introdução ao
Prof
a
Iloneide Carlos de Oliveira Ramos
Natal, janeiro de 2014
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45

Pré-visualização parcial do texto

Baixe Introdução à Linguagem de Programação R: Exercícios e Exemplos de Código e outras Resumos em PDF para Estatística, somente na Docsity!

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE

CENTRO DE CIÊNCIAS EXATAS E DA TERRA

DEPARTAMENTO DE ESTATÍSTICA

Notas de Aulas de Introdução ao

Prof

a

Iloneide Carlos de Oliveira Ramos

Natal, janeiro de 2014

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

# APRESENTAÇÃO

Estas notas estão completamente apresentadas em linhas de comando do R,

em que cada linha pode ser copiada e colada para execução no R.

O intuito é oferecer ao usuário um material objetivo de aplicação

dos comandos de introdução ao R.

Cada bloco de comando(s) vem precedido de um comentário (usando a

diretiva #), indicando a ação realizada pelo(s) comando(s).

A fim de exemplificar o uso de alguns comandos, encontra-se, em anexo,

um banco de dados coletado em sala de aula com informações de alunos

que frequentaram o curso nas turmas iniciais.

# 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")

x

y

z

# 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 = - v = w = 3 ls()

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(logico1) is.logical(logico1) 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)

# 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")

PROCURANDO UM TEXTO NO SITE http://search.r-project.org

RSiteSearch("pie 3d")

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 apropos("^.{,3}$") # objetos com até 3 caracteres

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.

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:/Temp")

INSTALANDO UM PACOTE A PARTIR DE UM ARQUIVO .ZIP

utils:::menuInstallLocal() # ou acessar ( mouse ): Pacotes; Instalar ...

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

# 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

# EXECUTANDO OPERAÇÕES SIMPLES

52-1,5/3 # Erro: erro de sintaxe em " 52-1," 5*2-1.5/ 3%%2 # resto da divisão de 3 por 2 3i * 2i # operação com números complexos

USANDO FUNÇÕES MATEMÁTICAS SIMPLES

exp(-1) sin(pi/2) asin(1) abs(-3) log(10) log10(10) sqrt(16)

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 x^2 entre 0 e 1 e informe o

resultado no exercício 3).

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

o resultado apresentado na figura 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.

6) Estude cada uma das funções listadas abaixo usando o help (estude,

especialmente, as seções: Description; Usage; Arguments; e

Examples). Para cada função:

a) Execute um dos exemplos da seção Examples, explicando cada linha

e os resultados obtidos;

b) Crie um exemplo, usando, de preferência, os dados fornecidos.

#1. choose #2. mean #3. cov #4. sd #5. var #6. cor #7. data.frame #8. dnorm #9. stem #10. plot #11. summary #12. quantile #13. median #14. factorial #15. weighted.mean

Gráfico do Exercício 1) # Figura do Exercício 3)

VancouverHainan

Prince of WalesTimor

KyushuTaiwan

New BritainSpitsbergen

Axel HeibergMelville

SouthamptonTierra del Fuego

DevonBanks

CelonTasmania

MoluccasSakhalin

HispaniolaHokkaido

Novaya ZemlyaIreland

MindanaoIceland

LuzonCuba

NewfoundlandNew Zealand (N)

JavaNew Zealand (S)

CelebesEllesmere

VictoriaBritain

HonshuSumatra

BaffinMadagascar

BorneoNew Guinea

GreenlandAustralia

EuropeAntarctica

South AmericaNorth America

AfricaAsia

1.0 1.5 2.0 2.5 3.0 3.5 4.

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

# 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 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) dados

# EDITANDO UM DATA FRAME

edit(dados1) dados1 # os dados não se alteram

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

dados1 = edit(dados1) dados

# 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) dados

# 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") dados

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

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

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

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

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

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

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

3) As notas obtidas pelos alunos desta disciplina em períodos passados

foram fornecidas em um arquivo criado no Excel. Importe os dados a

partir:

a) de um arquivo do tipo texto (csv, por exemplo);

b) do arquivo do tipo xls.

4) Use a função fix() para crie um data frame e depois:

a) exporte os dados para um arquivo texto.

b) exporte os dados para um arquivo Excel.

# 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

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^ peso+ 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)

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(2pi)dp))exp(-(x-media)^2/(2dp^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() PARA CRIAÇÃO DE DATA FRAMES

(dados1 = data.frame(x=1:7, y=11:17))

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

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

ACRESCENTANDO UMA COLUNA AO DATA FRAME dados

(dados2 = data.frame(dados1, Z=21:27)) # ou (dados2 = cbind(dados1, Z=21:27))

ACRESCENTANDO LINHAS AO DATA FRAME dados

(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 "$" EM DATA FRAMES

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

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

# 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"

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

dados 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> dados1$X<=

# 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

# USANDO "[...]" EM MATRIZ

A

A[2,2]

A[,2]

A[1,]

A[,2]==

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

# PROVOCANDO ERRO COM USO DE $

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

# 3.5 – Listas

# CRIANDO LISTAS

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

nomes = c("pedro", "maria", "lucas"); y = 1: (lista2 = list(Nomes=nomes, Y=y)) names(lista2); attach(lista2); Nomes

(lista3=list(lista2, Matriz=A)) names(lista3); attach(lista3) # Erro!

# 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]= alunos$Faixa.etaria[Idade>=20&Idade<30]= alunos$Faixa.etaria[Idade>=30]= class(alunos$Faixa.etaria); is.factor(alunos$Faixa.etaria) summary(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); is.factor(alunos$Faixa.etaria) summary(alunos$Faixa.etaria)