SlideShare uma empresa Scribd logo
1 de 7
Baixar para ler offline
1) Como trabalha o Programa
R é apenas um kernel, um núcleo com funções básicas e algumas mais avançadas.
O programa é totalmente aberto, permitindo ao usuário: 1) alterar seus códigos, 2) criar
seus próprios códigos.
Por ser um software livre contribuído, os usuários disponibilizam seus códigos nos site
do programa: http://www.r-project.org/
A maior parte dos modelos, testes de hipóteses e cálculos diversos de nosso interesse
estão algum pacote específico.
Sua lógica segue a de criação de linhas de comando (programação) e não de uso do
mouse.
Definição: Um pacote é um conjunto de funções que servem a um problema comum.
Assim, por exemplo, temos o pacote “geoR”, criado pelo Professor Paulo Justiniano,
que é um conjunto de funções com o objetivo de analisar dados espaciais à luz da teoria
Geoestatística.
Temos também as chamadas “tasks views”.
Definição: Uma task view é uma coletânea de pacotes de uma determinada área.
Desta forma, temos, por exemplo, a task view econometrics que compreende a maior
parte dos pacotes que seriam utilizados por um econometrista.
O programa, diferentemente do Stata ou SPSS, usa objetos (o e-views é um exemplo de
programa que usa objetos).
Definição: Um objeto é argumento de classe reconhecida pelo programa. Podemos
estabelecer quase tudo como um objeto no R o que lhe confere uma grande vantagem
em relação aos demais programas. Para criar um objeto usamos a seguinte estrutura:
meu_objeto = minha_função ou
meu_objeto <- minha_função
Na maioria dos programas os arquivos contêm apenas os dados. Aqui é possível salvar
tudo em um arquivo: dados, modelos estimados, funções, testes de hipóteses e, até
mesmo, texto no formato string (no e-views podemos salvar uma gama de objetos mas
extensão de objetos .
Classes de objetos:
• Vetores
• Matrizes
• Arrays: objeto que combina outros objetos de dimensões distintas como, por
exemplo, dois vetores. O Array é, portanto, uma matriz. Um tipo específico de
matriz.
• Listas: Uma coletânea de Objetos (pense na lista como um armário onde você
guarda diferentes tipos de roupas cada uma em um cabide).
• Data Frames: É uma lista de variáveis de mesmo tamanho e com nomes para
cada coluna. Tipo mais comum de armazenamento de dados.
Podemos, ao invés de digitar os comandos diretamente no console, usar os Scripts.
Definição: Scripts são arquivos de texto (podem ser abertos em editor de texto padrão,
como o word pad) com extensão “.r”.
2) Uso da ajuda
O programa conta com uma ajuda bastante útil.
Para chamar a ajuda basta coloca o caractere “?” na frente daquilo que se quer obter
ajuda.
Exemplo:
? vector
A estrutura acima me retorna a ajuda sobre vetores. Essa sintaxe só trará resultado se
houver uma função com a sintaxe exatamente igual à sua pergunta.
Desta forma, se eu digitar:
?coefficient
Não haverá retorno pois não existe em minha base sintaxe igual a “coeficient”.
Mas se meu objetivo é fazer um busca genérica digito:
??coefficient
Essa sintaxe me retorna todas as funções que têm, em sua ajuda, o termo digitado.
Além disso, podemos buscar ajudar nos fóruns. Eles são muito úteis e realmente obtêm-
se resposta.
Um fórum muito interessante é: http://www.nabble.com/R-f13819.html
3) Manipulações simples
3.1) O caractere precedente # denota texto:
# blablabla
3.2) Operações com escalares (funções de calculadora)
y1 = 2
y2 = 3 + 2
y3 = 3/5
y4 = 3*5
y5 = 10^3.5
y6 = log(100) # log é na base natural e, ou seja, log aqui é na verdade ln
Se eu quiser log em bases diferentes é só proceder da seguinte forma:
meu_objeto = log(logaritimando, base)
y6.1 = log(9,3) # log de nove na base três. Sabemos que isso é dois.
Alguns logs já possuem sintaxe própria:
y6.2 = log2(9) # log na base 2
y6.3 = log10(9) # log na base 10
Temos ainda:
meu_objeto = log1p(x).
Isso é equivalente à ln(1+x). Observe que x tem de obedecer à restrição que |x|< 1.
y6.4 = log1p(-0.5)
y7=exp(1) # me retorna 2,718282...
y8 = exp(2) # o equivalente a e² = 7.389056
y9 = pi # 3,1416...
Posso estabelecer objetos dependentes de outros objetos usando os operadores acima:
z1 = y1 + y2
z2 = (y1/y2)*y4
z3 = (log(y4)^y1)/y6
Podemos checar quantos objetos estão abertos:
ls()
Podemos remover alguns objetos usando o comando
rm(z1,z2,z3)
ou podemos remover todos os objetos usando:
rm(list=ls())
3.3) Vetores
Podemos criar vetores através de três tipos:
1) por meio de sequências numéricas
2) por meio de combinações de números (imputação direta)
3) por meio de combinações de objetos (imputação direta)
3.3.1) Vejamos o tipo 1
Quando crio um objeto com a sintaxe igual a
y = seq(1,8) ou y = seq(1:8)
tenho nas mão a sequência:
1 2 3 4 5 6 7 8
A pergunta baixo deve me responder TRUE
is.vector(y)
Mas se fizermos:
y = seq(1:8,4) # pegamos os quatro primeiros números da sequência
y = seq(1,8,length.out=11) # estou criando um vetor com 11 elementos que vai de 1 a 8
(1.0, 1.7, 2.4, 3.1, 3.8, 4.5, 5.2, 5.9, 6.6, 7.3, 8.0)
y = seq(1,8,by=3) # uma sequência que se inicia em 1, não ultrapassa 8 e altera-se a
cada 3 unidades.
(1, 4, 7)
Obviamente, a estrutura abaixo retornará um erro pois não é possível obter um intervalo
contido em em [1,8] com onze elementos que variam de três em três:
y = seq(1,8,by=3,length.out=11)
Por fim, se fizermos algo do tipo
y=seq(1,1,length.out=10)
teremos um vetor de constantes (neste caso 1) de dimensão 10
3.3.2) Agora o tipo 2: combinações de números (imputação direta)
Se criarmos objetos do tipo:
meu_objeto = c(valor_1, valor_2, ...., valor_n), criamos um vetor de dimensão N.
v1 = c(1,2,3,4,5) # vetor de um a cinco
v2 = c(10, 2:8) # vetor cujo primeiro elemento é 10 e os demais uma sequência de 2 a 8
(10, 2, 3, 4, 5, 6, 7, 8)
Essa estrutura me permite combinar os tipos de sequências vistas anteriormente:
v3 = c(seq(1,8,by=3), seq(1,1,length.out=10))
Nesse caso temos um vetor de dimensão 13 com os três primeiros elementos iguais a
1,4 e 7 e o resto igual a um.
Posso ainda criar vetores de letras:
letras = letters[1:10] # me retorna as 10 primeiras letras do alfalbeto.
e posso combinar isso aí:
v4 = c(letters[1:10], letters[1:10])
("a", "b", "c", "d", "e", "f", "g", "h", "i", "j","a", "b", "c", "d", "e", "f", "g", "h", "i", "j")
3.3.3) Vetores por meio de combinações de objetos
Se tivermos dois objetos vetoriais podemos criar um vetor a partir deles:
v5 = c(v4, v2)
3.4) Álgebra de Vetores no R
Aqui vamos ver as operações básicas de soma, subtração, divisão e multiplicação de um
vetor por um outro vetor e por um escalar ou operações diretas no vetor (log,
exponenciamento)
3.4.1) Álgebra de Vetores com escalares
Se fizermos qualquer operação de um vetor com um escalar teremos essa operação
aplicada a todos os elementos do vetor:
k1 = v1 + 2, teremos:
















=+
















7
6
5
4
3
2
5
4
3
2
1
k2 = v1*2, teremos:
















=
















10
8
6
4
2
2*
5
4
3
2
1
3.4.2) Operações diretas nos Vetores
Podemos tirar log e raiz dos vetores (desde que não haja valores negativos no vetor).
Podemos exponenciá-los também.
k3 = log(k2)
k4 = k2^0.5
3.4.2) Operações de vetores com Vetores com Vetores
3.4.2.1) Soma (subtração)
Se tivermos dois vetores ),( 21 vv
rr
e sua soma, 21 vv
rr
+ , o R realizará esta operação
independentemente da extensão dos mesmos.
Caso os vetores tenham o mesmo length o R somará os elementos diretamente, isso é:










+
+
+
=










+










2313
2212
2111
23
22
21
13
12
11
vv
vv
vv
v
v
v
v
v
v
Caso os vetores tenham lengths diferentes, o R somará os elementos de maneira
ordenada porém fazendo um loop até que se esgote a operação para o maior vetor, isto
é, até que todos os elementos do maior vetor tenham sido operacionalizados.
Se tivermos um vetor de comprimento 7 e outro de comprimento 3 a soma ficará:






















+
+
+
+
+
+
+
=






















+










2711
2613
2512
2411
2313
2212
2111
27
26
25
24
23
22
21
13
12
11
vv
vv
vv
vv
vv
vv
vv
v
v
v
v
v
v
v
v
v
v
3.4.2.2) Produto (divisão, exponenciação)
Para o produto (divisão, exponenciação) a lógica é a mesma! Ou seja, se tivermos
trabalhando com vetores de mesmo comprimento teremos:










×
×
×
=










×










2313
2212
2111
23
22
21
13
12
11
vv
vv
vv
v
v
v
v
v
v
Se o comprimento for diferente teremos:






















×
×
×
×
×
×
×
=






















×










2711
2613
2512
2411
2313
2212
2111
27
26
25
24
23
22
21
13
12
11
vv
vv
vv
vv
vv
vv
vv
v
v
v
v
v
v
v
v
v
v

Mais conteúdo relacionado

Mais procurados

Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)
Luciano Ramalho
 
Apresentação recursividade rev2
Apresentação recursividade rev2Apresentação recursividade rev2
Apresentação recursividade rev2
Rogerio Oliveira
 
Tutorial aed iii 008 - algoritmo de ordenação heapsort
Tutorial aed iii   008 - algoritmo de ordenação heapsortTutorial aed iii   008 - algoritmo de ordenação heapsort
Tutorial aed iii 008 - algoritmo de ordenação heapsort
Flávio Freitas
 
Curso java 04 - ap is e bibliotecas
Curso java   04 - ap is e bibliotecasCurso java   04 - ap is e bibliotecas
Curso java 04 - ap is e bibliotecas
Maurício Linhares
 
Curso java 06 - mais construtores, interfaces e polimorfismo
Curso java   06 - mais construtores, interfaces e polimorfismoCurso java   06 - mais construtores, interfaces e polimorfismo
Curso java 06 - mais construtores, interfaces e polimorfismo
Maurício Linhares
 

Mais procurados (17)

Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
 
Java 06 Strings Arrays
Java 06 Strings ArraysJava 06 Strings Arrays
Java 06 Strings Arrays
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compacto
 
Python: a primeira mordida
Python: a primeira mordidaPython: a primeira mordida
Python: a primeira mordida
 
Iteraveis e geradores em Python
Iteraveis e geradores em PythonIteraveis e geradores em Python
Iteraveis e geradores em Python
 
Apresentação recursividade rev2
Apresentação recursividade rev2Apresentação recursividade rev2
Apresentação recursividade rev2
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Tutorial aed iii 008 - algoritmo de ordenação heapsort
Tutorial aed iii   008 - algoritmo de ordenação heapsortTutorial aed iii   008 - algoritmo de ordenação heapsort
Tutorial aed iii 008 - algoritmo de ordenação heapsort
 
Comparação Experimental de Algoritmos de Ordenação
Comparação Experimental de Algoritmos de OrdenaçãoComparação Experimental de Algoritmos de Ordenação
Comparação Experimental de Algoritmos de Ordenação
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenação
 
Análise de desempenho de algoritmos de ordenação
Análise de desempenho de algoritmos de ordenaçãoAnálise de desempenho de algoritmos de ordenação
Análise de desempenho de algoritmos de ordenação
 
Aprendendo ruby
Aprendendo rubyAprendendo ruby
Aprendendo ruby
 
Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)
 
Curso java 04 - ap is e bibliotecas
Curso java   04 - ap is e bibliotecasCurso java   04 - ap is e bibliotecas
Curso java 04 - ap is e bibliotecas
 
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com JavaExercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
 
Curso java 06 - mais construtores, interfaces e polimorfismo
Curso java   06 - mais construtores, interfaces e polimorfismoCurso java   06 - mais construtores, interfaces e polimorfismo
Curso java 06 - mais construtores, interfaces e polimorfismo
 

Semelhante a Aula 01

SciLab -Tutorial
SciLab -TutorialSciLab -Tutorial
SciLab -Tutorial
blogmaxima
 
Java basico modulo_03
Java basico modulo_03Java basico modulo_03
Java basico modulo_03
wammendes
 
Algoritmo de ordenação heapsort.
Algoritmo de ordenação heapsort.Algoritmo de ordenação heapsort.
Algoritmo de ordenação heapsort.
Thaci Santos
 
Curso Básico de Java - Aula 7
Curso Básico de Java - Aula 7Curso Básico de Java - Aula 7
Curso Básico de Java - Aula 7
PeslPinguim
 

Semelhante a Aula 01 (20)

Sbc scipy
Sbc scipySbc scipy
Sbc scipy
 
Sbc scipy
Sbc scipySbc scipy
Sbc scipy
 
SciLab -Tutorial
SciLab -TutorialSciLab -Tutorial
SciLab -Tutorial
 
Matrizes e Vetores para programação
Matrizes e Vetores para programaçãoMatrizes e Vetores para programação
Matrizes e Vetores para programação
 
Pesquisa ppi 2
Pesquisa ppi 2Pesquisa ppi 2
Pesquisa ppi 2
 
Cap09
Cap09Cap09
Cap09
 
Cap09
Cap09Cap09
Cap09
 
Cap09
Cap09Cap09
Cap09
 
mod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaomod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacao
 
Linguagem R
Linguagem RLinguagem R
Linguagem R
 
Cartilha de Octave para Matematica Computacional.pdf
Cartilha de Octave para Matematica Computacional.pdfCartilha de Octave para Matematica Computacional.pdf
Cartilha de Octave para Matematica Computacional.pdf
 
Programação aula002
Programação aula002Programação aula002
Programação aula002
 
Java basico modulo_03
Java basico modulo_03Java basico modulo_03
Java basico modulo_03
 
Matlab – curso básico (1)
Matlab – curso básico (1)Matlab – curso básico (1)
Matlab – curso básico (1)
 
Aula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptAula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.ppt
 
Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).ppt
 
Algoritmo de ordenação heapsort.
Algoritmo de ordenação heapsort.Algoritmo de ordenação heapsort.
Algoritmo de ordenação heapsort.
 
Algoritmo0
Algoritmo0Algoritmo0
Algoritmo0
 
Curso Básico de Java - Aula 7
Curso Básico de Java - Aula 7Curso Básico de Java - Aula 7
Curso Básico de Java - Aula 7
 
Apostila ph pwamp_parte5
Apostila ph pwamp_parte5Apostila ph pwamp_parte5
Apostila ph pwamp_parte5
 

Último

Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
PatriciaCaetano18
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
azulassessoria9
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
Autonoma
 

Último (20)

Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
Quiz | Dia da Europa 2024 (comemoração)
Quiz | Dia da Europa 2024  (comemoração)Quiz | Dia da Europa 2024  (comemoração)
Quiz | Dia da Europa 2024 (comemoração)
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 
AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022
 
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de LedAula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
Missa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdfMissa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdf
 
tensoes-etnicas-na-europa-template-1.pptx
tensoes-etnicas-na-europa-template-1.pptxtensoes-etnicas-na-europa-template-1.pptx
tensoes-etnicas-na-europa-template-1.pptx
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
Aula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptAula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .ppt
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
Novena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João EudesNovena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João Eudes
 
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdf
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
 

Aula 01

  • 1. 1) Como trabalha o Programa R é apenas um kernel, um núcleo com funções básicas e algumas mais avançadas. O programa é totalmente aberto, permitindo ao usuário: 1) alterar seus códigos, 2) criar seus próprios códigos. Por ser um software livre contribuído, os usuários disponibilizam seus códigos nos site do programa: http://www.r-project.org/ A maior parte dos modelos, testes de hipóteses e cálculos diversos de nosso interesse estão algum pacote específico. Sua lógica segue a de criação de linhas de comando (programação) e não de uso do mouse. Definição: Um pacote é um conjunto de funções que servem a um problema comum. Assim, por exemplo, temos o pacote “geoR”, criado pelo Professor Paulo Justiniano, que é um conjunto de funções com o objetivo de analisar dados espaciais à luz da teoria Geoestatística. Temos também as chamadas “tasks views”. Definição: Uma task view é uma coletânea de pacotes de uma determinada área. Desta forma, temos, por exemplo, a task view econometrics que compreende a maior parte dos pacotes que seriam utilizados por um econometrista. O programa, diferentemente do Stata ou SPSS, usa objetos (o e-views é um exemplo de programa que usa objetos). Definição: Um objeto é argumento de classe reconhecida pelo programa. Podemos estabelecer quase tudo como um objeto no R o que lhe confere uma grande vantagem em relação aos demais programas. Para criar um objeto usamos a seguinte estrutura: meu_objeto = minha_função ou meu_objeto <- minha_função Na maioria dos programas os arquivos contêm apenas os dados. Aqui é possível salvar tudo em um arquivo: dados, modelos estimados, funções, testes de hipóteses e, até mesmo, texto no formato string (no e-views podemos salvar uma gama de objetos mas extensão de objetos . Classes de objetos: • Vetores
  • 2. • Matrizes • Arrays: objeto que combina outros objetos de dimensões distintas como, por exemplo, dois vetores. O Array é, portanto, uma matriz. Um tipo específico de matriz. • Listas: Uma coletânea de Objetos (pense na lista como um armário onde você guarda diferentes tipos de roupas cada uma em um cabide). • Data Frames: É uma lista de variáveis de mesmo tamanho e com nomes para cada coluna. Tipo mais comum de armazenamento de dados. Podemos, ao invés de digitar os comandos diretamente no console, usar os Scripts. Definição: Scripts são arquivos de texto (podem ser abertos em editor de texto padrão, como o word pad) com extensão “.r”. 2) Uso da ajuda O programa conta com uma ajuda bastante útil. Para chamar a ajuda basta coloca o caractere “?” na frente daquilo que se quer obter ajuda. Exemplo: ? vector A estrutura acima me retorna a ajuda sobre vetores. Essa sintaxe só trará resultado se houver uma função com a sintaxe exatamente igual à sua pergunta. Desta forma, se eu digitar: ?coefficient Não haverá retorno pois não existe em minha base sintaxe igual a “coeficient”. Mas se meu objetivo é fazer um busca genérica digito: ??coefficient Essa sintaxe me retorna todas as funções que têm, em sua ajuda, o termo digitado. Além disso, podemos buscar ajudar nos fóruns. Eles são muito úteis e realmente obtêm- se resposta.
  • 3. Um fórum muito interessante é: http://www.nabble.com/R-f13819.html 3) Manipulações simples 3.1) O caractere precedente # denota texto: # blablabla 3.2) Operações com escalares (funções de calculadora) y1 = 2 y2 = 3 + 2 y3 = 3/5 y4 = 3*5 y5 = 10^3.5 y6 = log(100) # log é na base natural e, ou seja, log aqui é na verdade ln Se eu quiser log em bases diferentes é só proceder da seguinte forma: meu_objeto = log(logaritimando, base) y6.1 = log(9,3) # log de nove na base três. Sabemos que isso é dois. Alguns logs já possuem sintaxe própria: y6.2 = log2(9) # log na base 2 y6.3 = log10(9) # log na base 10 Temos ainda: meu_objeto = log1p(x). Isso é equivalente à ln(1+x). Observe que x tem de obedecer à restrição que |x|< 1. y6.4 = log1p(-0.5) y7=exp(1) # me retorna 2,718282... y8 = exp(2) # o equivalente a e² = 7.389056 y9 = pi # 3,1416... Posso estabelecer objetos dependentes de outros objetos usando os operadores acima: z1 = y1 + y2 z2 = (y1/y2)*y4 z3 = (log(y4)^y1)/y6 Podemos checar quantos objetos estão abertos: ls()
  • 4. Podemos remover alguns objetos usando o comando rm(z1,z2,z3) ou podemos remover todos os objetos usando: rm(list=ls()) 3.3) Vetores Podemos criar vetores através de três tipos: 1) por meio de sequências numéricas 2) por meio de combinações de números (imputação direta) 3) por meio de combinações de objetos (imputação direta) 3.3.1) Vejamos o tipo 1 Quando crio um objeto com a sintaxe igual a y = seq(1,8) ou y = seq(1:8) tenho nas mão a sequência: 1 2 3 4 5 6 7 8 A pergunta baixo deve me responder TRUE is.vector(y) Mas se fizermos: y = seq(1:8,4) # pegamos os quatro primeiros números da sequência y = seq(1,8,length.out=11) # estou criando um vetor com 11 elementos que vai de 1 a 8 (1.0, 1.7, 2.4, 3.1, 3.8, 4.5, 5.2, 5.9, 6.6, 7.3, 8.0) y = seq(1,8,by=3) # uma sequência que se inicia em 1, não ultrapassa 8 e altera-se a cada 3 unidades. (1, 4, 7) Obviamente, a estrutura abaixo retornará um erro pois não é possível obter um intervalo contido em em [1,8] com onze elementos que variam de três em três:
  • 5. y = seq(1,8,by=3,length.out=11) Por fim, se fizermos algo do tipo y=seq(1,1,length.out=10) teremos um vetor de constantes (neste caso 1) de dimensão 10 3.3.2) Agora o tipo 2: combinações de números (imputação direta) Se criarmos objetos do tipo: meu_objeto = c(valor_1, valor_2, ...., valor_n), criamos um vetor de dimensão N. v1 = c(1,2,3,4,5) # vetor de um a cinco v2 = c(10, 2:8) # vetor cujo primeiro elemento é 10 e os demais uma sequência de 2 a 8 (10, 2, 3, 4, 5, 6, 7, 8) Essa estrutura me permite combinar os tipos de sequências vistas anteriormente: v3 = c(seq(1,8,by=3), seq(1,1,length.out=10)) Nesse caso temos um vetor de dimensão 13 com os três primeiros elementos iguais a 1,4 e 7 e o resto igual a um. Posso ainda criar vetores de letras: letras = letters[1:10] # me retorna as 10 primeiras letras do alfalbeto. e posso combinar isso aí: v4 = c(letters[1:10], letters[1:10]) ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j","a", "b", "c", "d", "e", "f", "g", "h", "i", "j") 3.3.3) Vetores por meio de combinações de objetos Se tivermos dois objetos vetoriais podemos criar um vetor a partir deles: v5 = c(v4, v2) 3.4) Álgebra de Vetores no R
  • 6. Aqui vamos ver as operações básicas de soma, subtração, divisão e multiplicação de um vetor por um outro vetor e por um escalar ou operações diretas no vetor (log, exponenciamento) 3.4.1) Álgebra de Vetores com escalares Se fizermos qualquer operação de um vetor com um escalar teremos essa operação aplicada a todos os elementos do vetor: k1 = v1 + 2, teremos:                 =+                 7 6 5 4 3 2 5 4 3 2 1 k2 = v1*2, teremos:                 =                 10 8 6 4 2 2* 5 4 3 2 1 3.4.2) Operações diretas nos Vetores Podemos tirar log e raiz dos vetores (desde que não haja valores negativos no vetor). Podemos exponenciá-los também. k3 = log(k2) k4 = k2^0.5 3.4.2) Operações de vetores com Vetores com Vetores 3.4.2.1) Soma (subtração) Se tivermos dois vetores ),( 21 vv rr e sua soma, 21 vv rr + , o R realizará esta operação independentemente da extensão dos mesmos. Caso os vetores tenham o mesmo length o R somará os elementos diretamente, isso é:           + + + =           +           2313 2212 2111 23 22 21 13 12 11 vv vv vv v v v v v v
  • 7. Caso os vetores tenham lengths diferentes, o R somará os elementos de maneira ordenada porém fazendo um loop até que se esgote a operação para o maior vetor, isto é, até que todos os elementos do maior vetor tenham sido operacionalizados. Se tivermos um vetor de comprimento 7 e outro de comprimento 3 a soma ficará:                       + + + + + + + =                       +           2711 2613 2512 2411 2313 2212 2111 27 26 25 24 23 22 21 13 12 11 vv vv vv vv vv vv vv v v v v v v v v v v 3.4.2.2) Produto (divisão, exponenciação) Para o produto (divisão, exponenciação) a lógica é a mesma! Ou seja, se tivermos trabalhando com vetores de mesmo comprimento teremos:           × × × =           ×           2313 2212 2111 23 22 21 13 12 11 vv vv vv v v v v v v Se o comprimento for diferente teremos:                       × × × × × × × =                       ×           2711 2613 2512 2411 2313 2212 2111 27 26 25 24 23 22 21 13 12 11 vv vv vv vv vv vv vv v v v v v v v v v v