PROGRAMAÇÃO MATEMÁTICA
c)LINGUAGEM R
1
Operadores <-, = , ->
Objetos e Atribuição
objeto <- expressão
area <- c(303, 379, 961, 295, 332, 47, 122, 11, 53, 2749)
riqueza <- c(3,10,20,7,8,4,8,3,5,23)
objeto = expressão
> area = c(303, 379, 961, 295, 332, 47, 122, 11, 53, 2749)
POUCO USADO:
expressão -> objeto
> c(303, 379, 961, 295, 332, 47, 122, 11, 53, 2749) -> area
Digite o nome do objeto para exibi-lo:
> area
[1] 303 379 961 295 332 47 122 11 53 2749
> riqueza
[1] 3 10 20 7 8 4 8 3 5 23
2
• Linguagem Orientada a Objetos
• > area <- c(303, 379, 961, 295, 332, 47, 122, 11, 53, 2749)
• > area
• [1] 303 379 961 295 332 47 122 11 53 2749
• > summary(area)
• Min. 1st Qu. Median Mean 3rd Qu. Max.
• 11.00 70.25 299.00 525.20 367.20 2749.00
Linguagem Orientada a Objetos
> modelo1 <- lm(riqueza~area)
> summary(modelo1)
‘ Call:
‘ lm(formula = riqueza ~ area)
Residuals:
Min 1Q Median 3Q Max
-4.4614 -2.1245 -0.5101 1.4862 7.6863
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 5.226994 1.352158 3.866 0.00477 ** 3
area 0.007374 0.001431 5.155 0.00087 ***
ls e rm: lista e remove objetos
> ls()
[1] "area" "modelo1" "modelo2" "previsto" "riqueza" "varea"
> rm(varea)
> ls()
[1] "area" "modelo1" "modelo2" "previsto" "riqueza"
4
Como o R trabalha?
● Os objetos criados são mantidos na memória,
até que sejam salvos.
●Por default, todos os objetos são salvos em um
único arquivo oculto no diretório de trabalho,
chamado .RData .
●Ao sair do programa com a função q, o R
perguntas se deve salvar as alterações.
●É recomendável salvar seu trabalho
regularmente, com o comando save.image
5
q:
Encerra a sessão do R
Sai do programa mas salva a área de
trabalho em
.RData (se a resposta for “y” !)
Se a resposta for “n” você perde
todas as alterações !
> q()
Save workspace image?
[y/n/c]: y
6
save.image , save e load:
Salva e carrega a área de trabalho
Salva a área de trabalho no
arquivo default (.RData) > save.image()
Salva a área de trabalho
em outro arquivo
> save(file="meuworkspace.RData")
Carrega um arquivo de área de trabalho
> load(file="meuworkspace.RData")
7
Como Trabalhar com o R?
Dica 1: Separe cada projeto em um diretório
● R works best if you have a dedicated folder for each
separate project – the working folder. Put all data files,
&c, in the working folder (or in subfolders of it)
●Start R in the working folder: three ways
– make an R shortcut pointing to the folder and doubleclick
– double-click on the .RData file in the folder, when it exists
– double-click any R shortcut and use setwd()
● Work on the project – your objects can be automatically
saved in the .RData file
● To quit – use q()
8
getwd e setwd:
Mostra e muda o diretório de trabalho
Qual o diretório de trabalho atual?
> getwd()
[1] "D:/UFPE/Laboratório de Matemática com MATLAB - 1º Semestre
2023"
Muda o diretório de trabalho
setwd("D:/UFPE/Laboratório de Matemática com
MATLAB - 1º Semestre 2023")
Verificando ...
> getwd()
[1] " D:/UFPE/Laboratório de Matemática com MATLAB -9
1º Semestre 2023 "
Como Trabalhar com o R?
Dica 2: salve seus comandos em um arquivo
● Use um editor de textos para escrever seus comandos
em um arquivo.
● Salve este arquivo em seu diretório de trabalho com
extensão .r ou .R
● Envie seus comandos ao R. Três maneiras:
● Com o comando source ("arquivo.R"): executa
todos os comandos.
● Na interface R-GUI do Windows, use o editor de
scripts e ctrlR
para enviar linhas ou blocos para.
● Use editores próprios para programação em R (e.g.,
Emacs com módulo ESS, Tinn-R).
10
Como Trabalhar com o R?
Dica 2: salve seus comandos em um arquivo
Arquivo de código
(script)
Janela do R
(R- console)
11
Pontos fortes Pontos fracos
fácil de programar sem um menu guia
gratuito nenhuma garantia de suporte
muitas funções por vezes, difíceis de encontrar
muito flexível por vezes, demasiada escolha disponível
excelente capacidade gráca leva algum tempo para aprender
12
Editores e IDE's
● Editor no R-GUI (Windows e Mac)
● Tinn-R (Windows): http://sciviews.org/Tinn-R/
● NotePad++ & NPPtoR (Windows):
http://npptor.sourceforge.net/
● TexMate (Mac): http://macromates.com/
● Rgedit (Linux) : http://sourceforge.net/projects/rgedit/
● Emacs + ESS : http://ess.r-project.org/
● R Studio: www.rstudio.org
● E muito mais, veja no wiki!
13
Classes de Objetos
> class(modelo1)
[1] "lm"
> names(modelo1)
[1] "coefficients" "residuals" "effects"
"rank"
[5] "fitted.values" "assign" "qr"
"df.residual"
[9] "xlevels" "call" "terms" "model"
O objeto modelo1 pertence à classe lm
(linear
models), que tem resultados de uma
regressão linear.
Esta classe de objeto contém outros
objetos, como os
vetores de valores previstos e de resíduos,
a fórmula
do modelo ajustado e muito mais.
14
Classes de Objetos
> x.1
[1] 1 2 3 4 5
> class(x.1)
[1] "integer"
> x.2
[1] 0.33333333 0.16666667 0.08333333
> class(x.2)
[1] "numeric"
> x.3
[1] "a" "b" "c" "d" "e"
> class(x.3)
[1] "character"
> x.4
[1] TRUE TRUE FALSE FALSE FALSE
> class(x.4)
[1] "logical"
15
is.[classe] e as.[classe]:
Verificação e Coerção de Classes
> x.1
[1] 1 2 3 4 5
> x.1t <- as.character(x.1)
> x.1t
[1] "1" "2" "3" "4" "5"
> x.5 <- c("TRUE","TRUE","TRUE","FALSE")
> class(x.5)
[1] "character"
> is.logical(x.5)
[1] FALSE
> x.5 <- as.logical(x.5)
> class(x.5)
[1] "logical"
16
c
Criação de Vetores
> a = c(3.4, pi, exp(-1))
>a
[1] 3.4000000 3.1415927 0.3678794
●Um objeto da classe vector no R é um conjunto de elementos
de uma mesma classe (números, caracteres, lógicos, etc).
● Um objeto vetor no R não corresponde aos vetores de algebra
matricial (para isso há a classe matrix).
● A função c combina elementos em um vetor.
17
factor
Classe de fatores
sexo <- rep(c("F","M"),each=9)
Sexo
[1] "F" "F" "F" "F" "F" "F" "F" "F" "F" "M"
[11] "M" "M" "M" "M" "M" "M" "M" "M"
> class(sexo)
[1] "character"
> sexo <- factor(sexo)
> sexo
[1] F F F F F F F F F M M M M M M M M M
Levels: F M
> class(sexo)
[1] "factor"
18
factor
Classe de fatores
> sexo <- rep(c("F","M"),each=9)
> sexo
[1] "F" "F" "F" "F" "F" "F" "F" "F" "F" "M"
[11] "M" "M" "M" "M" "M" "M" "M" "M"
> class(sexo)
[1] "character"
> sexo <- factor(sexo)
> sexo
[1] F F F F F F F F F M M M M M M M M M
Levels: F M
> class(sexo)
[1] "factor"
19
table
Contagens de Observações
> sexo
[1] F F F F F F F F F M M M M M M M M M
Levels: F M
> table(sexo)
sexo
FM
99
dieta<- rep(c("L","D","N"),each=3,times=2)
> dieta
[1] L L L D D D N N N L L L D D D N N N
Levels: N D L
> table(sexo,dieta)
dieta
sexo N D L
F 3 3 3
M 3 3 3
20
levels
Níveis de um fator
> politicos <- factor(rep("corrupto",10), levels=c("corrupto","honesto"))
> levels(politicos)
[1] "corrupto" "honesto"
Politicos
[1] corrupto corrupto corrupto corrupto corrupto
[6] corrupto corrupto corrupto corrupto corrupto
Levels: corrupto honesto
> table(politicos)
politicos
corrupto honesto
10 0
21