• Nenhum resultado encontrado

Prof. Ricardo L. R. de Souza

N/A
N/A
Protected

Academic year: 2021

Share "Prof. Ricardo L. R. de Souza"

Copied!
72
0
0

Texto

(1)
(2)

 O uso de softwares e pacotes estatísticos

para análise de dados é de grande importância.

 Dentre os softwares de domínio público, um

que tem ganhado destaque é o Ambiente R.

 R é uma linguagem de alto nível e um

ambiente para análise de dados e geração de gráficos.

(3)

 Tem código aberto: pode ser modificado,

aprimorado a qualquer momento por qualquer usuário.

(4)
(5)

 Foi desenvolvida por Chambers e cols.  Início em 1976 para análises estatísticas,

usando Fortran

(6)

 1991 – Criado na Nova Zelândia (University of

(7)

 1993 – Primeira divulgação ao público.  1995 – Tornou-se um software livre.

 1997 – É formado o Core Group, que controla

o código fonte do R.

 2000 – A versão 1.0.0 é lançada.  2018 – Versão 3.5.0

(8)
(9)
(10)
(11)

Instalando o R:

http://www.r-project.org/

Clique em

CRAN mirror

.

(12)

 A execução do R faz aparecer a janela do

aplicativo.

 Esta janela apresenta o prompt do R (> ), com

o cursor à sua frente.

 É aqui que vamos introduzir os comandos que

pretendemos que o R execute.

 Podemos começa por um exemplo:

 escreva o seguinte comando no prompt :  > R.version

(13)

 Os arquivos com o dados da sessão são

sempre gravados no diretório atual do R.

 Para saber o diretório atual do R:  > getwd()

(14)
(15)

 O R tem um sistema de ajuda bastante elaborado

que lhe permitirá obter muita informação extra sobre a linguagem, bem como muitos outros aspectos.

 Nas versões Windows do R, a forma mais fácil de

obter ajuda é através do menu Help

 Se pretende simplesmente obter ajuda sobre uma

função em particular do R, a forma mais simples é usar a função help():

(16)

 Para terminar a execução do R basta executar o

seguinte comando:

 > q()

 Aparece uma janela  salvar, se responderYes

vai salvar a informação contida na memória do computador num arquivo.

 A informação guardada consiste basicamente na

história de comandos que executamos nesta sessão (Rhistory), bem como os objetos que criamos (Rdata).

(17)

 Interface para o R.

 IDE – Integrated Development Enviroment  Integração com o R e um editor de texto para

(18)

Instalando Rstudio:

https://www.rstudio.com/

Integra-se à última versão do R

(19)
(20)

Janela onde devem ser digitados os comandos

(21)

Após clicar em Run, a linha de comandos atual ou as linhas selecionadas são

(22)

Lista com os objetos criados Aba com histórico dos

(23)

Files: conteúdo do diretório atual Plots: exibe os gráficos gerados

Packages: pacotes instalados e carregados Help: ajuda

(24)

 Uma instalação do R vem já com um conjunto de pacotes

instalados.

 Os pacotes são conjuntos de funções que foram criadas por

alguém e disponibilizadas.

 Qualquer pessoa pode criar as seus pacotes e submetê-los

ao portal do R.

Quando se executa o R só algumas funções estão

disponíveis de imediato.

 Em qualquer momento poderemos “carregar” um pacote

que contenha funções extra que necessitemos.

 Para isso o pacote ter que estar instalado no nosso

computador.

(25)

 Definir uma pasta de trabalho

Crie uma pasta para a disciplinaEntre em Tools>Global options

Em Default working directory escolher a pasta

criada.

(26)

 O R é uma linguagem baseada em objetos.

 Isto quer dizer que tudo o que vamos usar no R

está guardado na memória do computador sob a forma de um objeto.

 Todos os objetos em R tem um nome

associado e podem armazenar diferentes tipos de coisas (números, texto, vetores, matrizes, expressões, chamadas a funções, etc.).

(27)

 Para armazenar algo num objeto usamos o

operador de atribuição:

<- Exemplo:

 freq.p <- 0.6

 Para ver o conteúdo do objeto:

(28)

 O [1] que aparece antes do número guardado no

objeto tem o significado “esta linha mostra o

conteúdo do objeto, começando pelo elemento nº 1”.

 O significado disto tornar-se mas claro quando virmos

objetos que podem armazenar mais do que um elemento, p. ex. um vetor contendo 100 números.

A operação de atribuição é destrutiva no sentido que

ao atribuir um novo valor a um objeto existente,

vamos perder o conteúdo que ele estava armazenado anteriormente.

(29)

 Também podemos atribuir expressões numéricas a

objetos.

 O resultado de tal operação é o de que o resultado

do cálculo da expressão é colocado no objeto, e não a expressão propriamente dita:

 z <- 5  w <- z^2  w  [1] 25  i <- (z * 2 + 45)/2  i  [1] 27.5

(30)

 Sempre que criamos um novo objeto ele ficará

na memória do computador. Como esta é

limitada, poderemos apagar os objetos sempre que não precisarmos mais deles.

 Podemos ver quais os objetos atualmente na

memória do computador usando as funções ls()

ou objects().

 Se não necessitamos de algum dos objetos

(31)

 O nome dos objetos pode ser formado por

qualquer letra maiúscula ou minúscula, os dígitos 0 a 9 (exceto no início do nome), e também o ponto final.

 Os nomes dos objetos em R são sensíveis às

letras maiúsculas / minúsculas.

 Note também que não pode usar espaços nos

(32)

 O objeto mais básico do R para guardar

dados é o vetor.

 Um vetor é uma estrutura de dados que

permite armazenar um conjunto de valores do mesmo tipo (por exemplo números) sob um mesmo nome.

(33)

 Esses elementos podem depois ser acessados

individualmente usando um esquema de indexação.

 Este tipo de estrutura de dados é bastante

útil quando pretendemos armazenar várias coisas relacionadas na memória do

(34)

 Todos os vetores em R tem um modo e um

tamanho.

 O modo determina o tipo de valores guardado no

vetor.

 Em R podemos ter vetores com modo character,

logical,numeric e complex.

 Ou seja, podemos ter vetores para armazenar os

seguintes tiposde dados: conjuntos de caracteres, valores lógicos (F ou T ou FALSE ou TRUE),

(35)

 Para criar vetores usamos a função c() para

indicar ao R os elementos que formam o vetor separando-os por vírgulas:

 v <- c(4, 7, 23.5, 76.2, 80)  v  [1] 4.0 7.0 23.5 76.2 80.0  length(v)  [1] 5  mode(v)  [1] "numeric"

(36)

 Todos os elementos de um vetor tem que ser

do mesmo tipo (modo).

 Caso tentemos criar um vetor com tipos

diferentes, o R vai forçá-los a ser do mesmo tipo, alterando-os.

 Vejamos um exemplo disso:

 v <- c(4, 7, 23.5, 76.2, 80, "rrt")  v

(37)

 Todos os vetores podem ter um elemento

especial que é o NA.

 Este valor representa um valor desconhecido.  Por exemplo, se temos a idade de pacientes

guardados num vetor, mas não temos essa

informação de um indivíduo, podemos criar esse vetor:

 idade<- c(23, 45, NA, 34)  idade

(38)

 Os elementos de um vetor podem ser

acessados através de um índice:

 idade[2]

(39)

 O R permite-nos criar vetores vazios usando a

função vector():

 k <- vector()

 O tamanho de um vetor existente pode ser

alterado atribuindo mais elementos a índices até agora inexistentes:

 k[3] <- 45  k

(40)

 A linguagem R permite “vetorizar” a maioria

das suas funções.

 Exemplo:

 a função sqrt() que serve para calcular raízes

quadradas:  v <- c(4, 7, 23.5, 76.2, 80)  x <- sqrt(v)  x  [1] 2.000000 2.645751 4.847680 8.729261 8.944272

(41)

 O R pode ser usado para fazer operações

aritméticas envolvendo vetores:

 v1 <- c(4, 6, 87)

 v2 <- c(34, 32.4, 12)

 v1 + v2

(42)

 O que acontece se tentamos realizar

operações envolvendo vetores de tamanho diferente?

 O R vai usar um regra de reciclagem dos

valores do vetor mais curto até este atingir o tamanho do maior. Por exemplo:

 v1 <- c(4, 6, 8, 24)

 v2 <- c(10, 2)

 v1 + v2

(43)

 Os fatores proporcionam uma forma fácil e

compacta de lidar com dados categóricos (ou nominais).

 Este tipo de dados podem ser vistos como

variáveis que podem tomar como valores

possíveis um conjunto finito de etiquetas (por exemplo uma variável que armazene o estado civil de uma pessoa).

 Os fatores tem associados a eles um conjunto de

níveis que são os valores possíveis que podem tomar.

(44)

 Vejamos como criar fatores em R.

 Suponhamos que pretendemos guardar o

sexo 10 indivíduos num vetor:

 s <- c("f", "m", "m", "m", "f", "m", "f", "m",

"f", "f")

 s

(45)

 Ao transformarmos um vetor de caracteres

num fator, o R vai dar-nos a possibilidade de fazer coisas como por exemplo contar

quantas vezes ocorre cada valor desse fator.

 Podemos transformar um vetor de caracteres

num fator da seguinte forma:

 s <- factor(s)

 s

 [1] f m m m f m f m f f

(46)

 Suponha agora que temos 4 indivíduos cujo sexo

pretendemos armazenar.

 Imagine que por coincidência todos pertencem

ao sexo masculino.

 Se pretendemos que o fator resultante

mantenha os 2 níveis possíveis para o sexo de um indivíduo teremos que fazer:

 outro.s <- factor(c("m", "m", "m", "m"), levels = c("f", "m"))

 outro.s

 [1] m m m m

(47)

Uma das vantagens de transformar um vetor de

caracteres num fator, é a possibilidade de usar funções específicas para lidar com fatores.

 Uma dessas funções permite-nos contar o número de

ocorrências de cada valor (nível):

 table(s)  s  f m  5 5  table(outro.s)  outro.s  f m  0 4

(48)

 A função table() também pode ser usada para

fazer tabulações cruzadas de dois fatores,

desde que estes tenham o mesmo tamanho.

 Imaginemos que temos um outro vetor com

as idades dos indivíduos cujo sexo está armazenado em s.

 Podemos fazer uma tabulação cruzada da

(49)

 idade <- factor(c("adulto", "adulto", "jovem", "jovem", "adulto“, "adulto", "adulto", "jovem", "adulto", "jovem"))

 table(idade, s)

 idade f m

 adulto 4 2

(50)

 Também é possível obter frequências

marginais e relativas.

 Por exemplo, para saber o número total de

adultos e jovens faríamos:

 tabela.cruzada <- table(idade, s)

 margin.table(tabela.cruzada, 1)

 idade

 adulto jovem

(51)

 Frequências relativas  função prop.table()  prop.table(tabela.cruzada, 1)  s  idade f m  adulto 0.6666667 0.3333333  jovem 0.2500000 0.7500000  prop.table(tabela.cruzada, 2)  s  idade f m  adulto 0.8 0.4  jovem 0.2 0.6  prop.table(tabela.cruzada)  s  idade f m  adulto 0.4 0.2  jovem 0.1 0.3

(52)

 Podem-se gerar sequências em R de várias de

formas.

 Por exemplo, para criar um vetor com os

números de 1 a 1000.

 Em vez de os escrevermos todos, podemos

usar:

(53)

 Exemplos:  seq(from = 1, to = 5, length = 4)  [1] 1.000000 2.333333 3.666667 5.000000  seq(from = 1, to = 5, length = 2)  [1] 1 5  seq(length = 10, from = -2, by = 0.2)  [1] 2.0 1.8 1.6 1.4 1.2 1.0 0.8 0.6 0.4 -0.2

(54)

 Uma outra função bastante útil para gerar

sequências é a função rep():

 rep(5, 10)

 [1] 5 5 5 5 5 5 5 5 5 5  rep("sim", 3)

 [1] "sim" "sim" "sim“

 rep(1:3, 2)

(55)

 A função gl() pode ser usada para gerar

sequências envolvendo fatores.

A sintaxe é gl(k,n), em que k é o número de níveis

do fator e n o número de fatores de cada nível.

 Vejamos dois exemplos,  gl(3, 5)

 [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3

 Levels: 1 2 3

 gl(2, 5, labels = c("nao", "sim"))

 [1] nao nao nao nao nao sim sim sim sim sim

(56)

 O R tem uma série de funções para gerar

sequências aleatórias de acordo com uma série de funções de distribuição de

probabilidade.

 Essas funções tem a forma genérica rfunc(n,

par1, par2, ...), em que n é o número de dados a gerar, e par1, par2, ...são valores de alguns parâmetros que a função específica possa precisar

(57)

 Por exemplo, se pretendemos 10 números

gerados aleatoriamente de acordo com uma distribuição normal de média 0 e desvio

padrão unitário, podemos fazer:

(58)

 Se preferirmos 10 números provenientes de

uma distribuição normal com média 10 e desvio padrão 3, faríamos:

(59)

 De igual modo para obter 5 números obtidos

de forma aleatória de uma distribuição t de Student com 10 graus de liberdade, fazemos:

(60)

 Por vezes poderemos estar interessados em

armazenar a nossa informação em estruturas de dados com mais do que uma dimensão.

 As matrizes arranjam a informação em duas

dimensões.

 Em R, as matrizes são vetores com uma

(61)

 Exemplo: temos 12 números correspondentes às

vendas trimestrais durante um ano, em três lojas.

 As instruções seguintes permitem “organizar” esses

números como uma matriz:

 vendas <- c(45, 23, 66, 77, 33, 44, 56, 12, 78, 23, 78, 90)  vendas  [1] 45 23 66 77 33 44 56 12 78 23 78 90  dim(vendas) <- c(3, 4)  vendas  [,1] [,2] [,3] [,4]  [1,] 45 77 56 23  [2,] 23 33 12 78  [3,] 66 44 78 90

(62)

 Na realidade seria mais simples criar a matriz

usando uma função específica para isso:

 vendas <- matrix(c(45, 23, 66, 77, 33, 44,

(63)

 Os números foram “espalhados” pela matriz

por coluna, i.e. primeiro foi preenchida a primeira coluna, depois a segunda, etc.

 Caso não seja isto o que queremos,

poderemos preencher a matriz por linhas da seguinte forma:

 vendas <- matrix(c(45, 23, 66, 77, 33, 44,

(64)

 > vendas

 [,1] [,2] [,3] [,4]

 [1,] 45 23 66 77

 [2,] 33 44 56 12  [3,] 78 23 78 90

(65)

 Nas matrizes podemos dar nomes para linhas e

colunas:

 Vejamos como fazer isso no exemplo anterior:  rownames(vendas) <- c("loja1", "loja2",

"loja3")

 colnames(vendas) <- c("1.trim", "2.trim", "3.trim", "4.trim")

(66)

 Podemos acessar elementos individuais das

matrizes usando um esquema de indexação:

 vendas[2, 2]

 [1] 44

 Ou então, usando os nomes:

 vendas["loja2", "2.trim"]

(67)

 As funções cbind() e rbind() podem ser

usadas para juntar dois ou mais vetores ou matrizes, por colunas ou por linhas,

(68)

 O seguinte exemplo ilustra o seu uso:  m1 <- matrix(c(45, 23, 66, 77, 33, 44, 56, 12, 78, 23), 2, 5)  m1  [,1] [,2] [,3] [,4] [,5]  [1,] 45 66 33 56 78  [2,] 23 77 44 12 23  cbind(c(4, 76), m1[, 4])  [,1] [,2]  [1,] 4 56  [2,] 76 12

(69)

As regras aritméticas também se aplicam as matrizes. Exemplos:  m <- matrix(c(45, 23, 66, 77, 33, 44, 56, 12, 78, 23), 2, 5)  m  [,1] [,2] [,3] [,4] [,5]  [1,] 45 66 33 56 78  [2,] 23 77 44 12 23  m * 3  [,1] [,2] [,3] [,4] [,5]  [1,] 135 198 99 168 234  [2,] 69 231 132 36 69

(70)

 Os arrays são extensões das matrizes para

mais do que duas dimensões. Isto significa que podem ter vários índices.

 Existe uma função array() para facilitar a

criação de arrays

(71)

 Lista é uma coleção ordenada de objetos

conhecidos como os componentes da lista.

 Esses componentes não necessitam de ser do

mesmo tipo, modo ou tamanho.

 Os componentes de uma lista em R são sempre

numerados e podem também ter um nome associados a eles.

 estudante <- list(nro = 34453, nome = "Carlos  + Silva", notas = c(14.3, 12, 15, 19))

 estudante[[1]]  ou

(72)

 Um data frame é um objeto do R usado para guardar

tabelas de dados de um problema qualquer.

É muito semelhante a uma matriz, mas as suas colunas

tem nomes e podem conter dados de tipo diferente, diferente da matriz.

 Um data frame pode ser visto como uma tabela de uma

base de dados, em que cada linha corresponde a um registro (linha) da tabela. Cada coluna corresponde às propriedades (campos) a serem armazenadas para cada registro da tabela.

notas.inform <- data.frame(nros = c(2355, 3456, 2334,

+5456), turma = c("tp1", "tp1", "tp2", "tp3"), notas = +c(10.3, 9.3, 14.2, 15))

Referências

Documentos relacionados

Nesta exposição, preparada para a Mesa Redonda “Edson Zampronha: sensibilidade e interatividade no discurso e na criação musical”, apresento um breve resumo sobre as concepções

(2014) através da World Values Survey. A preocupação com o meio ambiente, bem como a pouca importância dada ao “ter” são características dos que tendem a

Trata-se de um estudo descritivo com abordagem quantitativa O local escolhido como cenário para a pesquisa foi a Faculdade de Enfermagem Nova Esperança de Mossoró – FACENE/RN

* Movement based refers to any Creative work, from any artistic area, using the movement as basis of work, research or critical approach. Movement understood as the movement of

- Se o estagiário, ou alguém com contacto direto, tiver sintomas sugestivos de infeção respiratória (febre, tosse, expetoração e/ou falta de ar) NÃO DEVE frequentar

decomposição Dado não disponível Inflamabilidade Dado não disponível Viscosidade Dado não disponível Limites de inflamabilidade superior / inferior. ou explosividade Dado

Essa teoria considera que a natureza é constituída de cinco elementos básicos: madeira, fogo, terra, metal e água.. Existe entre eles uma relação de interdependência

Por minha vida, por meu povo, pelos meus eu rendo graças, ao meu Pai que estende as mãos, tudo sustenta e nos renova e dá vigor, e assim me pede para abrir meu coração!.