73
Uso de linguagens de programação R Dr. Héliton R. Tavares Assistentes: Paulo Germano Sousa, Robinson Ortega Meza

Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Uso de linguagens de programação R

Dr. Héliton R. Tavares

Assistentes: Paulo Germano Sousa, Robinson Ortega Meza

Page 2: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Programação RO ambiente RO Editor RStudioDownload R e RStudioRodando scriptsFormas de atribuições de valores

Vetores e matrizes

Principais funções Estatísticas

Gráficos bidimensionais e Tridimensionais

Distribuições de probabilidade e funções associadasGeração de números aleatórios no R

Estatísticas descritivas

Integração numérica simples

Leitura e gravação de dados

Page 3: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Programação R: Orientações gerais

1. R é uma plataforma livre para computação estatística queinclui um excelente ambiente gráfico. O R começou a serdesenvolvido por Robert Gentleman e Ross Ihaka doDepartamento de Estatística da Universidade de Auckland naNova Zelândia, mais conhecidos por ”R & R", apelido do qualse originou o nome R do programa.

2. Com o incentivo de um dos primeiros usuários deste programa,Martin Mächler do ETH Zürich (Instituto Federal deTecnologia Zurique da Suíça), ”R & R"lançaram o códigofonte do R em 1995, disponível por ftp (uma forma de setransferir dados pela internet), sobre os termos de FreeSoftware Foundations GNU general license, que seria um tipode ”licença para softwares livres".

Page 4: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Programação R: Observações gerais

3. Desde então o R vem ganhando cada vez mais adeptos emtodo o mundo, em parte devido ao fato de ser totalmentegratuito e também por ser um programa que exige do usuárioo conhecimento das análises que está fazendo, diminuindoassim as chances de uma interpretação errada dos resultados.

4. Outro fator importante para a difusão do R é a suacompatibilidade com quase todos os sistemas operacionais.

5. Assim como o LaTex, o R tem um Compilador que pode serusado com um Editor pra simplificar o layout.

Apresentaremos a seguir um breve resumo de suas funções, deixando osdetalhes para os muitos manuais disponíveis na Internet; na páginahttp://www.helitontavares.com/R/ há vários deles. Iniciamos comalgumas observações gerais antes de apresentar as funções mais usuais.Naquela página também serão disponibilizados os executáveis parainstalação.

Page 5: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Editor R Próprio

Figura: Editor R próprio

Page 6: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Editor RStudio

Figura: Editor de VBA

Page 7: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Download R

I Compilador: https://cran.r-project.org/

Page 8: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Download RStudio

I Editor RStudio: https://rstudio.com/

Page 9: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Download RStudioI Editor RStudio: https://rstudio.com/

Page 10: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Observações

Algumas sugestões ou cuidados na elaboração de uma sintaxe são:Caso sensitivo Todas as funções em R são caso-sensitivas, ou seja,

variáveis com letras maiúsculas são diferentes devariáveis com letras minúsculas. Por exemplo, x=2 eX=3 serão duas variáveis distintas com valoresdiferentes.

Help Para obter ajuda sobre um comando plot, usehelp(plot) ou ?plot. O mesmo vale para qualqueroutro comando.

Script O conjunto de comandos será chamado de script. àsvezes encontrase com outras denominações (macro,sintaxe, programa etc). Podemos usar a combinaçãode teclas CONTROL+R para rodar as linhasselecionadas de script.

Page 11: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Observações

Algumas sugestões ou cuidados na elaboração de uma sintaxe são:RStudio O RStudio é uma interface que organiza de forma

bem eficiente várias janelas no R. Recomenda-sefortemente a sua instalação, após a instalação do R.A partir disso, basta abrir o RStudio que ele já ativaráo R.

package De forma geral, os comandos do R estão dentro depacotes (packages), de forma que antes de executarcomandos específicos é necessário carregar um oumais pacotes.

Page 12: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Observações

(a) É sempre aconselhável escrever os scripts e salvá-los em umarquivo, que terão a extensão .R+. Também é imporanteque os scritps contenham explicações sobre o quefaz cada operação; usa-se o caracter ] parainiciar um comentário. Na páginawww.helitontavares.com/R com o arquivo script1.Rque contém todos os comandos aqui apresentados.

(b) Para rodar um scritp podemos ir até a janela descripts, marcar as linhas a serem executadas eclicar no ícone de Run, ao topo desta janela.Também podemos teclar CONTROL+ENTER (OU CONTROLR). Alternativamente, podemos copiar ou digitardiretamente no console e teclar enter. Veremos queo R enumera as linhas com [1], [2] ...

Page 13: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Obtendo ajuda sobre algum comando

Na janela de ajuda, clique o nome do comando comando desejado.Alternativamente, podemos escrever no script o comandohelp(plot) ou ?plot e executá-lo.

Instalando pacotes (packages)O R já carrega um conjunto de funções básicas. Para outrasfunções, temos que chamar os pacotes em que elas foramconstruídas. Podemos fazer isso utilizando o menu direito inferior,ou através de comandos. Se ele já está instalado, basta carregá-locom o comando library. Em caso contrário, temos que instalar opacote com o comendo install.packages e depois carregar. Asintaxe abaixo já faz as duas coisas:

if (!require(rio))install .packages(”rio”); library(rio)

Page 14: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Sobre o RStudio

I Podemos mudar o TEMA em Tools > Global Options >Appearance

I Temos 4 partes:1. Scrips, onde há o Run2. Console, onde ontemos as saídas.3. Environment, History, Connections4. Files, Plots, Packages, Help, Viewer

Page 15: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Instalando pacotes (packages)

Figura: Instalando pacotes (packages)

Page 16: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Os primeiros passos no R

Page 17: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Fomas de atribuições de valores

i) a<-2

ii) 2->a

iii) a=2

iv) a<<-2 # variável GLOBALv) a=1; b=2; c=3

vi) (a=2) # Atribui e mostra no console

Page 18: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Construindo sequências

i) A=1:10 # produz 1,2,3,...,9,10ii) C = seq(from=1, to=10) # mesmo que 1:10iii) C = seq(from=1, to=10, by=0.5)

iv) D = seq(length=51, from=-5, by=.2)

v) C = seq(from=1, to=4, length=6)

vi) C = seq(2,50,2) # produz 2,4,6,8, ... ,50vii) E = rep(2, times=5)

viii) rep(5, times=3) # produz 5 5 5ix) rep(1:5, 3) # produz [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5

ObservaçãoApenas fazendo uma atribuição o valor não será impresso noconsole

Page 19: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Vetores e matrizes

A função c() é usada para juntar (concatenar) diferentes elementos para formar umarranjo maior. Vejamos alguns exemplos:

i) A=c(1,2,3) produz 1,2,3

ii) B = c(3.4, pi, exp(-1))

iii) C = c(A, B, 10)

iv) D = 1:12; dim(D)=c(3,4)

v)E = matrix(1:12, byrow = TRUE, ncol = 2)

vi) F = rbind(A,B) # junta linhas (rows)

vii) G = cbind(A,B) # junta colunas(columns)

Page 20: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Operações Básicas com escalares

i) 1/x # Inversa do escalar x

ii) sqrt(x) # Raiz Quadrada #

iii) abs(-1) # Módulo ou valor absoluto

iv) log(10 ) # Logaritmo natural ou neperiano

v) log(10, base = 10) # Logaritmo base 10

vi) log(10, base = 3.4076) # Logaritmo base 3.4076

vii) exp(1) # Exponencial

viii) sin(0.5*pi) # Seno

ix) cos(2*pi) # Coseno

x) tan(pi) # Tangente

xi) asin(1) # Arco seno (em radianos)

xii) asin(1) / pi * 180

xiii) round(4.3478 , digits=3)

xiv) ceiling(4.3478 )

xv) factorial(4) # Fatorial de 4

xvi) choose(10, 3) # Combinação de 10, 3 a 3

xvii) x %% y # Funçã MOD (resto da divisão)

Page 21: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

ListasListas são objetos genéricos em que cada elemento da lista pode ser um string,escalar, vetor, matriz etc. Nos referimos aos seus elementos por [[1]], [[2]]...

1 x = list(1:5, "Z", TRUE, c("a", "b"), matrix(1:12,4,3)2 > x3 [[1]]4 [1] 1 2 3 4 55

6 [[2]]7 [1] "Z"8

9 [[3]]10 [1] TRUE11

12 [[4]]13 [1] "a" "b"14

15 [[5]]16 [,1] [,2] [,3]17 [1,] 1 5 918 [2,] 2 6 1019 [3,] 3 7 1120 [4,] 4 8 12

Page 22: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

ListasUm exemplo de cadastro:

1 pedido = list(pedido_id = 8001406,2 pedido_registro = as.Date("2017-05-25"),3 nome = "Athos",4 sobrenome = "Petri Damiani",5 cpf = "12345678900",6 email = "[email protected]",7 qualidades = c("incrível", "impressionante"),8 itens = list(9 list(descricao = "Ferrari",

10 frete = 0,11 valor = 500000),12 list(descricao = "Dolly",13 frete = 1.5,14 valor = 3.90)15 ),16 endereco = list(entrega = list(logradouro = "Rua da Glória",17 numero = "123",18 complemento = "apto 71"),19 cobranca = list(logradouro = "Rua Jose de Oliveira Coutinho",20 numero = "151",21 complemento = "5o andar")22 )23 )

Page 23: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Listas

Os elementos de uma lista (e outros tipos) podem ser acessados usando o $:

1 > pedido$cpf # elemento chamado 'cpf'2 > pedido[1] # nova lista com apenas o primeiro elemento3 > pedido[[2]] # segundo elemento4 > pedido["nome"] # nova lista com apenas o elemento chamado 'nome'5 > pedido$qualidades6 [1] "incrível" "impressionante"7 > pedido$qualidades[1]8 [1] "incrível"

Page 24: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Data.frames

Um data.frame é o mesmo que uma tabela do SQL ou um spreadsheet do Excel, porisso são objetos muito importantes. Usualmente, os dados são importados para umobjeto data.frame, e serão o principal objeto de trabalho.Os data.frame’s são listas especiais em que todos os elementos possuem o mesmocomprimento. Cada elemento dessa lista pode ser pensado como uma coluna databela. Seu comprimento representa o número de linhas.Já que são listas, essas colunas podem ser de classes diferentes. Essa é a grandediferença entre data.frame’s e matrizes. Algumas funções úteis:

1 head() - Mostra as primeiras 6 linhas.2 tail() - Mostra as últimas 6 linhas.3 dim() - Número de linhas e de colunas.4 names() - Os nomes das colunas (variáveis).5 str() - Estrutura do data.frame. Mostra, entre outras coisas, as classes de cada coluna.6 cbind() - Acopla duas tabelas lado a lado.7 rbind() - Empilha duas tabelas.

Page 25: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Tipos e Classes

Normalmente não precisamos declarar o tipo/classe dos objetos: character, numeric,integer, complex, logical (esses são denominados de elementos básicos ou atômicos).O próprio R identifica, quando possível. Podemos usar a função class() para checarseu tipo:

1 x = 12 class(x)3 ## [1] "numeric"4

5 y = "a"6 class(y)7 ## [1] "character"8

9 z = TRUE10 class(z)11 ## [1] "logical"

Page 26: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Tipos e Classes

Os elementos de um vetor ou matriz são sempre da mesma classe. Ou todos sãonuméricos, ou são todos character, ou todos são lógicos etc. Não dá para ter umnúmero e um character no mesmo vetor, por exemplo. O R vai forçar que todos oselementos passem a pertencer à mesma classe. O número 3.14 viraria "3.14"se fossecolocado ao lado de um "a".

1 y <- c(3.14, "a") ## character2 y <- c(TRUE, 2) ## numeric3 y <- c(TRUE, "a") ## character

DOMINANTE character > complex > numeric > integer > logical RECESSIVO

Observação (Forçando classes explicitamente)Podemos coagir um objeto a ser de uma classe específica om as funçõesas.character(), as.numeric(), as.integer() e as.logical().

Page 27: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Principais funções Estatísticasi) min(x) # Mínimo do vetor x

ii) max(x) # Máximo do vetor x

iii) sum(x) # Soma dos elementos de x

iv) length(x) # Num. elementos de x

v) mean(x) # Média amostral

vi) var(x) # Variância amostral

vii) sd(x) # Desvio padrão amostral

viii) median(x) # Mediana amostral

ix)quantile(x,p) # Quantis p=(p1,p2...) dos elementos de x. Ex. p=c(.25,.5,.75)

x) cor(x,y) # Correlação amostral entre X e Y

xi) range(x) # Equivalente a c(min(x),max(x))

xii) table() # Frequências

xiii) summary(x) # Resumo de estatísticas descritivas

xiv) cumsum(x) # Acumulada prod(x)

xv) cumprod(x) # Acumula os produtos

xvi) diff(x) # x(i)-x(i-1)

xvii) which.min(x) # Posição do mínimo

xviii) which.max(x) # Posição do máximo

Page 28: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Uma primeira aplicação: imc

O índice de massa corpórea (imc), muito utilizado em diversas áreas médicas, bemcomo em Educação Física, é obtido pela fórmula: imc = peso/altura2 [peso em Kg ealtura em metros(m)]. Nesta aplicação foram obtidos os pesos e alturas de seispessoas e desejamos calcular seus imc’s.

1 peso = c(60, 72, 57, 90, 95, 72)2 altura = c(1.75, 1.80, 1.65, 1.90, 1.74, 1.91)3 imc = peso/(altura^2)4 imc

Page 29: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Falta de observação (NA): Missing Data

Quando temos falta de observação, podemos usar o símbolo NA(Not Available / Não Disponível). Frequentemente nos referimos aessa situação como missing data (dados faltantes) ou missingvalues (valores faltantes, observação ausente). No R, missing valuessão representados pelo símbolo NA. Valores impossíveis (ex.,divisão por zero) são representados pelo símbolo NaN (Not aNumber). A opção na.rm=TRUE retira os NA dos cálculos:

1 x = c(1,2,NA,3)2 mean(x) # retorna NA3 mean(x, na.rm=TRUE) # retorna 2

Page 30: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Outros elementos especiais: NaN, Inf, NULL

No geral, existem valores reservados para representar dados faltantes, infinitos, eindefinições matemáticas.

I NaN (Not a Number) representa indefinições matemáticas, como 0/0 e log(-1).Um NaN é um NA, mas a recíproca não é verdadeira.

I Inf (Infinito) é um número muito grande ou o limite matemático, por exemplo,1/0 e 10^310. Aceita sinal negativo -Inf.

I NULL representa a ausência de informação. Conceitualmente, a diferença entreNA e NULL é sutil, mas, no R, o NA está mais alinhado com os conceitos deestatística (ou como gostaríamos que os dados faltantes se comportassem emanálise de dados) e o NULL está em sintonia com comportamentos de lógica deprogramação.

Use as funções is.na(), is.nan(), is.infinite() e is.null() para testar se um objeto é umdesses valores.

1 x = c(NaN, Inf, 1, 2, 3, NA)2 is.na(x)3 ## [1] TRUE FALSE FALSE FALSE FALSE TRUE4 is.nan(x)5 ## [1] TRUE FALSE FALSE FALSE FALSE FALSE

Page 31: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Gráficos bidimensionaisA principal função para plotar uma função f (x) é a plot, que tem várias opções.Basicamente, devemos criar um vetor x com os pontos em que serão calculados osvalores da função y = f (x). A cada comando plot será gerado um novo gráfico, etodos poderão ser acessados através das setas (esquerda e direita) da janela plots.Abaixo segue um conjunto de exemplos e opções desta função. O help com as opçõespode ser obtido com help(plot).

i) Ex: x=seq(1,4,.1); y=x^2-5*x+6; plot(x,y)

ii) plot(x,y,type='b')

iii) plot(x,log(x),type='b')

iv) plot(x, y, type = "l")

v) plot(x, y, type = "p")

vi) plot(x, y, type = "o")

vii) plot(x, y, type = "b")

viii) plot(x, y, type = "h")

ix) plot(x, y, type = "S")

x) plot(x, y, type = "s")

xi) plot(x, y, type = "n")

xii) points(rev(x),y)#adiciona pontos ao gráfico ativo

xiii) lines(x,100-y) #adiciona linhas ao gráfico ativo

Page 32: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Alterando alguns padrões dos gráficos

i) points(x,8000-y,pch="*") #símbolo asterisco

ii) points(rev(x),y,pch=3) #adiciona cruzes

iii) plot(x,y,pch="@")

iv) plot(x,y,pch=1:3)

v) plot(0:20,0:20,pch=0:20)

vi) curve(100*(x^3-x^2)+15, from=0, to=1)

Page 33: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Gráficos bidimensionais com subgráficosCom o R podemos combinar multiplos gráficos em um únicográfico, usando as funções par( ) ou layout( ).

i) par(mfrow = c(1,1)) #padrão

ii) par(mfrow = c(3,2)) #gráficos múltiplos com 3 linhas e 2 colunas

iii) par(mfrow = c(4, 2), mar = c(2, 2, 0.3, 0.3), mgp = c(1.5, 0.6,0))

Page 34: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Exemplos do par

1 # 3 figures arranged in 3 rows and 1 column2 attach(mtcars)3 par(mfrow=c(3,1))4 hist(wt)5 hist(mpg)6 hist(disp)

Page 35: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Exemplos do par

1 # One figure in row 1 and two figures in row 22 attach(mtcars)3 layout(matrix(c(1,1,2,3), 2, 2, byrow = TRUE))4 hist(wt)5 hist(mpg)6 hist(disp)

Page 36: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Exemplos do par1 # One figure in row 1 and two figures in row 22 # row 1 is 1/3 the height of row 23 # column 2 is 1/4 the width of the column 14 attach(mtcars)5 layout(matrix(c(1,1,2,3), 2, 2, byrow = TRUE),6 widths=c(3,1), heights=c(1,2))7 hist(wt)8 hist(mpg)9 hist(disp)

Page 37: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Exemplos do par1 # Add boxplots to a scatterplot2 par(fig=c(0,0.8,0,0.8), new=TRUE)3 plot(mtcars$wt, mtcars$mpg, xlab="Car Weight",4 ylab="Miles Per Gallon")5 par(fig=c(0,0.8,0.55,1), new=TRUE)6 boxplot(mtcars$wt, horizontal=TRUE, axes=FALSE)7 par(fig=c(0.65,1,0,0.8),new=TRUE)8 boxplot(mtcars$mpg, axes=FALSE)9 mtext("Enhanced Scatterplot", side=3, outer=TRUE, line=-3)

Page 38: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Gráficos tridimensionais: pacote rgl

if(!require(rgl)) install.packages("rgl"); library(rgl)

i) x = sort(rnorm(1000))

ii) y = rnorm(1000)

iii)z = rnorm(1000) + atan2(x,y)

iv)plot3d(x, y, z, col=rainbow(1000))

Page 39: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Gráficos tridimensionais: pacote plot3D

if(!require(plot3D)) install.packages("plot3D"); library(plot3D)

Para cada linha abaixo, tecle ENTER várias vezes:

1 example(persp3D)2 example(surf3D)3 example(slice3D)4 example(scatter3D)5 example(segments3D)6 example(image2D)7 example(image3D)8 example(contour3D)9 example(colkey)

10 example(jetcol)11 example(perspbox)12 example(mesh)13 example(trans3D)14 example(plotplist)15 example(ImageOcean)16 example(Oxsat)

Page 40: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

pacote ggplot2

Um dos pacotes mais flexíveis para a construção de gráficos é oggplot2. Ele tem uma vaariedade muito grande possibilidades, e aresolução dele também é melhor.if(!require(ggplot2)) install.packages("ggplot2"); library(ggplot2)

I Exemplo 1: https://www.r-graph-gallery.com/barplot.htmlI Exemplo 2: https://www.curso-r.com/material/ggplot/I Exemplo 3:

https://tutorials.iq.harvard.edu/R/Rgraphics/Rgraphics.html

Page 41: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Operações matriciais

i) A = 1:9

ii) A = matrix(A, nrow = 3, ncol = 3, byrow = TRUE)

iii) A[3,3]=10 # Muda o elemento (3,3) da matriz A

iv) A[,1]

v) B[1,3]; B[c(1,2),3];B[c(1,3),c(2,4)] #selecionando partes da matriz

vi) B = t(A)

vii) rowSums(A[,2:3])

viii) diag(c(1, 2, 3))

ix) A * B # Produto ponto a ponto

x) A %*% B # Produto matricial

xi) A.inv = solve(A)) # Inversa de A

xii) A %*% A.inv #

xiii) det(A) determinante da matriz A

xiv) pmin, pmax

Page 42: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Distribuições de probabilidade

Page 43: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Distribuições de probabilidade e funções associadasHá muitas distribuições de probabilidade na área de Estatística. Na prática, váriosfatores determinam qual distribuição é apropriada para descrever um fenômeno(experimento), e os dados observados deste fenômeno. Para cada distribuiçãopodemos estar interessados em quatro tipos de operações, representadas por d, p, q, r,descritas abaixo.

d : função (densidade) de probabilidade avaliada em um ponto;p : probabilidade associada a algum evento,q : valores para construir Intervalos de Confiança (IC),r : observações pseudo-aleatórias.

Estas letras precedem as funções das distribuições. Os principais casos são:i) Bernoulli e Binomial: dbinom(), pbinom(), qbinom(), rbinom()ii) Poisson: dpois(), ppois(), qpois(), rpois()iii) Normal: dnorm(), pnorm(), qnorm(), rnorm()iv) t-Student: dt(), pt(), qt(), rt()v) Qui-quadrado: dchisq(), pchisq(), qchisq(), rchisq()vi) Uniforme: *unif()vii) Gama: *gamma()viii) Cauchy: *cauchy()ix) F: *f()x) Exponencial: *exp()xi) Beta: *beta()xii) Geométrica: *geom()xiii) Hipergeométrica: *hyper()

Page 44: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Cálculos com a distribuição Normal(0,1)ExemploObter o valor f (x) da densidade da N(0, 1) avaliada no ponto x = 1.

1 dnorm(x=1,mean=0,sd=1)

Resultado, f (1) = 0.2419707

ExemploPlotar o gráfico da fdp N(0, 1).

1 x = seq(-3,3,0.01)2 plot(x,dnorm(x,0,1),type="l",xlab="x",ylab="f(x)")

ExemploCalcular a probabilidadeP(−∞ < Z < 0), onde Z ∼ N(0, 1).Resultado: 0.5.

1 pnorm(0)

Page 45: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Cálculos com a distribuição Normal(0,1)ExemploCalcular a probabilidade P(0 < Z < 1), ondeZ ∼ N(0, 1). Resultado: 0.3413447.

1 pnorm(1)-pnorm(0)

ExemploCalcular a probabilidade P(Z > 1), onde Z ∼ N(0, 1).Resultado: 0.1586553.

1 pnorm(-1)

ExemploObter P(Z < −1). Resultado: 0.1586553 (duas opções)

1 (i) pnorm(q=-1,mean=0,sd=1,lower.tail=T)23 (ii) 1-pnorm(q=1,mean=0,sd=1,lower.tail=F)

ExemploOber o valor de z tal que P(Z < z) = 0.95. Resultado:1.644854.

12 qnorm(p=0.95,mean=0,sd=1)

Page 46: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Geração de valores de variáveis aleatórias no R

Uma das necessidades mais importantes é a geração de valores de cada distribuição,simulando o que ocorre na prática. A letra r que determina essas funções, provém dapalavra random, que significa aleatório. A cada vez que executamos um comando, sãogerados diferentes valores aleatórios, mas se quisermos repetição dos valores podemosresetar a semente (ou raiz) com o comando set.seed(1). A seguir apresentamosfunções definidas no R para geração de valores de variáveis aleatórias para váriasdistribuições.

ExemploGerar 20 observações de uma Bernoulli(p=0.3).

ObservaçãoO R base não tem a distribuição Bernoulli(p), pois ela é um caso particular dadistribuição Binomial(n, p). Temos que Bernoulli(p)=Binomial(1,p). No entanto, opacote purrr tem a função rbernoulli.

1 x = rbinom(20,1,0.3)

Page 47: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Bornoulli e Binomial

ExemploGerar n=1000 observações de uma Bernoulli(p = 0.3) e presentar a média.rnorm(n=20,mean=10,sd=3)

1 mean(rbinom(1000,1,.3))

ExemploGerar n=1000 observações de uma Binomial(n = 10, p = 0.3) e presentar a média, avariância, o desvio-padrão e o histograma.[Obs. E(X ) = np e Var(X ) = np(1− p)]

1 x=rbinom(1000,10,.3)2 mean(x)3 var(x)4 sd(x)5 hist(x)

Page 48: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Multinomial

ExemploGerar 10 observações de uma Multinomial(3,c(.1, .2, .7)) e obter a frequência de cadacategoria.

ObservaçãoO R base gera uma um vetor indicando qual categoria foi selecionado. Por exemplo,(1,0,0) indica a categoria 1, enquanto (0,0,1) indica a categoria 3.

1 x=rmultinom(10, 1, c(.1, .2, .7))2 rowMeans(x)

ObservaçãoPodemos usar outro artifício, através do comando sample, que pode ser feito com ousem reposição.

1 n=10002 x=sample(1:3, size=n, replace=T, prob=c(.2,.3,.5))3 table(x)/n

Page 49: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Estatísticas descritivas: summary e hist

ExemploGerar estatísticas descritivas de um conunto de dados podemos usar a função summary.

1 nrv = rnorm(mean=0,sd=1,n=10000)2 summary(nrv)

ExemploGerar 1000 valores de uma N(0, 1) e apresentar um sumário e um histograma.

1 nrv = rnorm(mean=0,sd=1,n=10000)2 summary(nrv)3 hist(nrv)

ExemploGerar 1000 valores de uma N(0, 1) e apresentar dois histogramas.

1 x = rnorm(1000) #Geração das observações2 par(mfrow=c(2,1)) #Serão dois gráficos3 hist(x,main=1) #histograma padrão4 hist(x,breaks=seq(-5,5,.1),main=2) #histograma com opções

Page 50: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Flexibilidades na construção do histograma

ExemploGerar 1000 valores de uma χ2(10) e apresentar um histograma.

1 x=rchisq(1000,10); #Geração das 1000 observações2 hist(x) #histograma padrãao de x3 hist(x, #histograma de x com opções:4 main="Histograma Qui-quadrado", #título5 xlab="Valores", #texto do eixo das abscissas6 ylab="Prob", #texto do eixo das ordenadas7 br=c(c(0,5),c(5,15),5*3:7), #int das classes8 xlim=c(0,30), #limites do eixo de x9 ylim=c(0,0.1), #limites do eixo y

10 col="lightblue", #cor das colunas11 border="white", #cor das bordas das colunas12 prob=T, #mostrar probabilidades.13 right=T, #int fechados à direita14 adj=0, #alinhamento dos textos15 col.axis="red") #cor do texto nos eixos

E tem muito mais flexibilidade!

Page 51: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Imprimindo mensagens com cat, message e print

Frequentemente temos que imprimir mensagens sobre os resultados. O comando cat éum dos mais usados, podendo quase sempre ser substituído pelo message, com osquais podemos concatenar textos e números. Em ambos os casos, podemos usar ocomando \n para pular uma linha. Para vetores e matrizes, devemos usar o print.

1 n=10002 cat("Vamos gerar uma a mostra de tamanho",n,"\n e outra de tamanho",2*n)

ExemploGerar 1000 valores de uma N(500, 1002) e apresentar a média amostral e odesvio-padrão amostral.

1 n=10002 x=rnorm(n, mean=500, sd=100)3 cat("Media amostral:",mean(x),"\nDesvio-padrão amostral:",sd(x))4 cat("Media amostral:",round(mean(x),2),"\nDesvio-padrão amostral:",round(sd(x),2))

Page 52: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Gráficos de dadoshttps://www.r-graph-gallery.com

Page 53: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Inserindo o conjunto de dados

ExemploEntrar com um determinado conjunto de dados e apresentar um histograma.

1 dados = c(25,27,18,16,21,22,21,20,18,23,27,21,19,20,21,16)2 hist(dados, #histograma de dados3 nc=6, #número de classes igual a 64 right=F, #int fechado à esquerda5 main="Histograma", #título do histograma6 xlab="tempo (em minutos)", #texto do eixo x7 ylab="frequencia", #texto do eixo y8 col=2) #usa a cor cinza nas barras

Page 54: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Construindo gráficos de barras

Para plotar um gráfico de barras de um conjunto de dados, usamos a função barplot.Veja alguns layouts em https://www.r-graph-gallery.com/barplot.html

ExemploEntrar com um determinado conjunto de dados e apresentar um gráfico de barras.

1 barplot(table(c("a","a","a","a","a","b","b","b","c","c","v","v")))

ExemploEntrar com as frequências obtidas em determinado conjunto de dados e apresentar umgráfico de barras (colunas).

1 dados = c("a"=4,"b"=7)2 barplot(dados)

ExemploEntrar com dados e apresentar um gráfico de barras horizontais.

1 dados = table(c("a","a","a","a","a","b","b","b","c","c","v","v"))2 barplot(dados, hor=T)

Page 55: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

https://www.r-graph-gallery.com/barplot.html

Page 56: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

https://www.r-graph-gallery.com/barplot.html

Page 57: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

BoxplotGerar n = 100 valores X ∼ B(10, 52) e de χ(10) e plotar um boxplot.

1 x = rnorm(100,10,4)2 y = rchisq(100,10)3 boxplot(x,y)

Page 58: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Pizzas / Setores

Site: https://www.r-graph-gallery.com/pie-plot.htmlEntrar com dados e apresentar um gráfico de pizza.

1 x=c(1,1,2,2,2,2,3,3,3)2 pie(x)3 pie(x, labels = paste(round(x/sum(x), dig=2), "%"), col = c(2,4))

Page 60: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Integração numérica simples

Há vários métodos para obtenção de aproximações para integrais. Para fins deilustração, segue uma ideia bem simples de como proceder.

ExemploObter valor aproximado para a integral da função f (t) = cos(t) no intervalo [0, π/6].

1 dt = 0.0052 t = seq(0, pi/6, by = dt)3 ft = cos(t)4 plot(t,ft)5 (I = sum(ft) * dt)

ExemploObter valor aproximado para P(0 < Z < 1), onde Z ∼ N(0, 1).

1 dt = 0.0012 t = seq(0, 1, by = dt)3 ft = dnorm(t)4 (I = sum(ft) * dt)

Page 61: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Elementos de Programação noR

Page 62: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Condicional: IF

Funciona de forma muito similar a outras linguagens, podendo ter ou não o else. Aigualdade deve sempre ser testadada com o duplo sinal: ==.

1 if (logical_expression) { expression_1 ... }

1 if (logical_expression) { expression_1 ... } else { expression_2 ...}

1 x=102 if (x%%2==0) cat(x," é par!") else cat (x, " é ímpar!")

ObservaçãoOs comandos podem ocupar várias linhas, mas o else deve ficar no final do últimocomando do condicional verdadeiro. Veja o errro:

1 x=112 if (x%%2==0) cat(x," é par!")3 else cat (x, " é ímpar!")

Page 63: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Operadores

1 x < y x menor que y?2 x <= y x menor ou igual a y?3 x > y x maior que y?4 x >= y x maior ou igual a y?5 x == y x igual a y?6 x != y x diferente de y?7 !x Negativa de x8 x | y x ou y são verdadeiros?9 x & y x e y são verdadeiros?

10 xor(x,y) x ou y são verdadeiros (apenas um deles)?

Page 64: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

LoopsObservaçãoComo qualquer elemento pode ser um vetor ou uma matriz, o uso de loops pode serevitado em muitas situações. No entanto, sempre haverá necessidade em casosespecíficos.

1 for (i in 1:n) {}

1 while (logical_expression) { expression_1 ... }

ExemploGerar R=1000 réplicas (repetições) de tamanho n = 5 de uma N(0, 1) e presentar amédia e o desvio-padrão.

1 R=10002 n=303 est=matrix(0,R,2)4 for (r in 1:R){5 x=rnorm(n)6 est[r,1]=mean(x)7 est[r,2]=var(x)8 }9 cat("Media: ", mean(est[,1]),"\nVariancia: ",mean(est[,2]))

10 hist(est[,1]); hist(est[,2])

Page 65: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

O problema dos aniversários

ExercícioElabore uma sintaxe para responder à seguinte pergunta: se selecionarmos r = 23pessoas ao acaso, qual a probabilidade de pelo menos duas fazerem aniversário nomesmo dia do ano? Considere que há 365 dias. Use n = 10000. Complemente asintaxe de forma a termos o resultado para valores de r = 10, 11, · · · , 60. Insira osresultados em células do Excel. Plot um gráfico da probabilidade (y) como função der(x).

1 n=100002 r=233 K=3654 x=sample(1:K, size=r, replace=T)5 sum(duplicated(x))6

7 CS=08 for (i in 1:n){9 x=sample(1:K, size=r, replace=T)

10 if (sum(duplicated(x))>0) CS=CS+111 }12 cat("Probabilidade de Coincidencia: ", CS/n)

Page 66: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

O bandido e as 3 portas

ExemploUm bandido é preso em uma cela que contém 3 portas. A primeira porta o leva a umtúnel que o conduz à própria cela depois de 2 dias de viagem. A segunda porta leva-oa um túnel que o conduz à própria cela depois de 4 dias de viagem. A terceira porta oconduz à liberdade depois de um dia de viagem. Se assumimos que o bandidoseleciona as portas 1, 2 e 3 com probabilidades 0.5, 0.3 e 0.2 respectivamente, qual onúmero esperado de dias para que alcance a liberdade?

1 n = 100000; K=3; p1 = 0.5; p2 = 0.3; dias = 02 for (i in 1:n){3 saida=04 while(saida==0){5 x=sample(1:K, size=1, replace=T, prob=c(p1,p2,1-p1-p2))6 if (x==1) dias=dias+27 if (x==2) dias=dias+48 if (x==3) {dias=dias+1; saida=1}9 }

10 }11 cat("Probabilidade de Coincidencia: ", dias/n)

ExercícioQual a distribuição aproximada de T , o número dias até a liberdade?

Page 67: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Podemos simplificar sintaxes?

O problema do prisioneiro, agora só com 1 loop.

1 n = 10000; K=3; p1 = 0.5; p2 = 0.3; dias = 02 saida=03 while (saida <= n){4 x=sample(1:K, size=1, replace=T, prob=c(p1,p2,1-p1-p2))5 if (x==1) dias=dias+26 if (x==2) dias=dias+47 if (x==3) {dias=dias+1; saida=saida+1}8 }9 cat("Probabilidade de Coincidencia: ", dias/n)

Page 68: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Funções

O uso de funções é necessário em códigos grandes. Vamos rever a função do problemados aniversários.

1 Niver=function(r){2 CS=03 for (i in 1:n){4 x=sample(1:K, size=r, replace=T)5 if (sum(duplicated(x))>0) CS=CS+16 }7 return(CS/n)8 }9

10 n=10000; R=60; K=36511 RESULT=matrix(0,R,2)12 for (r in 1:R){13 RESULT[r,1]=r14 RESULT[r,2]=Niver(r)15 }16 plot(RESULT)

Page 69: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Leitura e gravação de dados

Page 70: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Leitura de dados

No R, podemos ler dados usando o menu ou através de comandos, descritos abaixo:

Comandos O R base tem diversos comandos, um para cada tipo de arquivo, taiscomo read.csv, read.csv2, read.table, read.fwf, readRDS etc.Felizmente quase todos foram reunidos em um único pacote, o rio,que checa qual o formato dos dados e faz a leitura. Alternativas:

I dados = import(file.choose()), é a forma mais simples de usodo rio, no qual uma janela do explorer se abrirá paraencontrarmos o arquivo.

I dados = import("C: ... dados.xlsx")|

Menu Devemos ir em Environment > Import Dataset, e R usará comandosinternamente, dependendo do tipo de arquivo.

No Excel é trivial abrir arquivos usando diretamente o menu, mas alguns cuidados sãonecessários. Arquivos de texto costumam ter as observações separadas por algumcaractere único, tipo barra ("), vírgula (",") ou ponto e vírgula (";"), e um cuidadoespecial é com o separador decimal dos números (ponto ou vírgula). Se no Excel oseparador decimal for a vírgula, o separador de variáveis será o ponto e vírgula,obrigatoriamente.

Page 71: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Leitura de dados: CSV, TAB e Formato fixo

Os arquivos de extensão CSV (Comma Separated Values / Valores Separados porVírgulas) é um tipo de arquivo texto muito comum, em que o separador decimal é oponto. Para atender a outros formatos, foi criado o CSV2, em que os valores sãoseparados por ponto e vírgula, mas ambos são salvos com a extensão ".CSV".

1 dados = read.csv(file="Dados.csv", header=TRUE, sep=",")

Outro formato já não tão comum usa o TAB como separação:

1 dados = read.table("Dados.txt", sep="\t", header=TRUE)

E quando as colunas são fixadas:

1 dados = read.fwf("Dados.dat", widths=c(3,4,rep(1,14)), header=FALSE, dec=',')

Arquivos do Excel, pode ser simplificado com o pacote readxl

1 dados = read_excel("Dados.xlsx", sheet = 1, col_names = FALSE, col_types = NULL, na = "", skip = 0)

Page 72: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Gravação de dados

No R, podemos ter como objetivo salvar alguns arquivos em especial, ou salvar umaimagem (extensão RDS) com todos os arquivos no workspace:

Imagem save.image(”Imagem.RData”)

Arquivos Devemos saber em que formato queremos salvar. O Excel lêdiretamente os arquivos CSV, então recomenda-se salvar diretamenteneste formato, caso o objetivo seja ler posteriormente no Excel.

I write.table(Dados, "Dados.dat", sep="\t")I write.table(Dados, "Dados.dat", sep=" ")I write.table(Dados, "Dados.dat", sep=",")I write.table(Dados, "Dados.dat", sep=";")

Page 73: Uso de linguagens de programação R(b) Para rodar um scritp podemos ir até a janela de scripts, marcar as linhas a serem executadas e clicar no ícone de Run, ao topo desta janela

Obrigado, e sejam felizes escrevendo seus próximos TEXtos &Códigos!