O R é um program gratuito que permite entre outras coisas:

Slides:



Advertisements
Apresentações semelhantes
Utilizando o R. Técnicas para Predição de Dados 2 17/8/2008 Introdução ao R R é um linguagem (ambiente) de programação para computação estatística e gráfica.
Advertisements

Programação em Java Prof. Maurício Braga
Programação em Java Prof. Maurício Braga
Software Básico Silvio Fernandes
Algoritmos para Geração de Variáveis Aleatórias
O TECLADO 1 -Principais teclas de edição de texto Tecla Função
Operadores e Funções do LINGO
Introdução à Programação usando Processing Programação Gráfica 2D Animações Exercício Animações 14/10/09 Bruno C. de Paula 2º Semestre 2009 > PUCPR >
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INTRODUÇÃO AOS APLICATIVOS JAVA Prof. Thiago Pereira Rique
INTRODUÇÃO AOS APLICATIVOS JAVA
Luís Torgo, 2002FEP, UP Indexação de vectores Para aceder a um elemento de um vector usamos a sua posição entre parênteses rectos. O R também nos permite.
FOLHA DE CÁLCULO 1.
Luís Torgo, 2002FEP, UP Data Frames Os data frames são objectos usados para guardar tabelas com dados sobre um problema. –Uma tabela de dados é formada.
1 Introdução à Programação Linguagem R. 2 Introdução A aprendizagem de uma linguagem de programação desenvolve a capacidade de raciocínio e análise do.
Introdução à Programação Linguagem R
Introdução à Programação Linguagem R
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 4.
Ciclos, Vectores e Gráficos Simulação da Queda de Corpos II
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes
Análise de regressão linear simples: abordagem matricial
Vi 1 Editando com vi. vi 2 Por que vi? l Editar arquivos de configuração l Editar scripts de shell l Disponível em todas as distribuições l Necessita.
Estatística Básica Utilizando o Excel
15 Introdução à Manipulação de Planilhas Eletrônicas Planilhas Eletrônicas são tabelas usadas para comunicar informações de forma clara, precisa e sucinta.
LINGUAGEM C.
Polinômios Prof. Marlon.
FUNÇÃO MODULAR.
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
LINGUAGEM ESTRUTURADA TURBO C
Organização da Memória Principal
Tratamento de Ficheiros
Programação Baseada em Objectos Desenho de TAD
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação JAVA
Apontadores ou Ponteiros
PROGRESSÕES JUDITE GOMES
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
PROGRAMAÇÃO I UNIDADE 1.
Conteúdos do tutorial O que é um Slide Mestre?
Linguagem de Programação II Parte VII
Conhecimento Científico Noutros conhecimentos...
Estrutura de dados, pseudocódigo
Coordenação Geral de Ensino da Faculdade
Quais são, suas médias, medianas e modas?
Programação Funcional
Modelagem Estatística
Tarefa 02 Visual Studio 2005 Visual C# Programa Hello World.
Amostragem Pontos mais importantes:
ANÁLISE ESTATÍSTICA II
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Aula 6 - Estruturas de Controle
ANÁLISE ESTATÍSTICA II
1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP
Exercício - 1. Criar no SPSS o banco de dados com as informações fornecidas 2. Salvar o banco com o nome atividade física na pasta pos pilates 3.
Resolução de sistemas de equações lineares
Campus de Caraguatatuba Aula 2: Somatório e Produtório
UNIDADE 2: Sistema Operativo em Ambiente Gráfico
ÁREA DE TRABALHO DO WINDOWS
1.2 Variaveis - conceito Podemos imaginá-la como uma caixa com tampa que pode conter algum dado. Se precisarmos conhecer esse dado, abrimos a tampa da.
3. Introdução à Linguagem C
Campus de Caraguatatuba
Linguagem de Programação C#
Planilha Eletrônica - Excel
Algumas notas sobre a linguagem de programação C
Aula 11 - Teste de hipóteses, teste de uma proporção
Campus de Caraguatatuba Aula 9: Noções Básicas sobre Erros (3)
MatLab (Matrix Laboratory)
Fundamentos de linguagens de programação
Transcrição da apresentação:

O R é um program gratuito que permite entre outras coisas: Escrever programas para realizar tarefas complexas. Fazer análise estatística de forma tão ou mais poderosa que outros programas não gratuitos (SPSS, SAS, etc.). Visualizar os resultados da análise de dados através de gráficos bastante poderosos. Importar dados de outros programas (Access, Excel, SPSS, SAS, etc.). Realizar operações complexas de diversas áreas, como por exemplo: Álgebra matricial, Optimização, Análise numérica, Análise estatística, Etc.

Informação básica sobre a interacção com o R Iniciar o R na FEP

A janela (consola) do R O prompt Onde se vão escrever os comandos

Como se vai processar a interacção com o R Digitar comandos no prompt Escreve-se o comando e carrega-se na tecla Enter. O R executa o comando e apresenta o resultado dessa execução (pode ser texto ou um gráfico). > R.version _ platform i386-pc-mingw32 arch i386 os mingw32 system i386, mingw32 status major 1 minor 5.1 year 2002 month 06 day 17 language R Escrever os comandos num ficheiro de texto (usando por exemplo o Notepad) e depois usar um comando do R para executar os comandos contidos nesse ficheiro, todos de uma vez. Mais prático para projectos maiores.

Edição na linha de comando (prompt) É possível com as teclas das setas “ir buscar” os comandos digitados anteriormente. Isto é prático quando se usam comandos parecidos, ou quando se pretende fazer uma pequena alteração a um comando anterior, pois evita digitar tudo de novo

Acabar a sessão com o R Através do comando q() Responder “Yes” só deve ser feito se se pretender continuar o que se estava a fazer, numa posterior execução do R. Senão deve-se responder “No”. Carregando no “X” da janela do R Aparecer a mesma janela de diálogo com a mesma pergunta.

Objectos do R O R é uma linguagem orientada aos objectos. Exemplo Qualquer calculo pode ser guardado num objecto. Um objecto é uma entidade com um nome à qual nós podemos associar um conteúdo. O nome do objecto pode depois ser usado para ver o conteúdo do objecto, ou para usar esse conteúdo em computações posteriores. Exemplo Guardar o número 45 num objecto chamado X > X <- 45 Ver o conteúdo do objecto X > X [1] 45 Instrução de atribuição O operador “<-” serve para atribuir (guardar) um valor num objecto.

A instrução de atribuição (alguns exemplos) A instrução de atribuição é destrutiva Isto quer dizer que cada objecto só pode guardar 1 valor. Exemplo: > y <- 78 > y [1] 78 > y <- 90 [1] 90 Podem-se atribuir expressões numéricas a um objecto. O que é guardado é o resultado e não a expressão! > z <- 5 > w <- z^2 > w [1] 25 > i <- (z*2 + 45)/2 > i [1] 27.5

O R pode ser usado como uma espécie de calculadora, pois o resultado das expressões não precisa de ser guardado num objecto: > (34 + 90)/12.5 [1] 9.92 Sempre que atribuímos algo a um novo objecto, o R cria-o e o seu conteúdo fica na memória do computador. Como esta é limitada, devemos apagar o objecto se já não precisamos mais dele. Para ver que objectos estão na memória do R faz-se: > objects() [1] "i" "w" "X" "y" "z" Para remover algum objecto faz-se: > rm(y) > rm(z,w)

Nomes válidos para os objectos Os nomes dos objectos podem incluir: Qualquer letra (maiúscula ou minúscula) Qualquer dígito de 0 a 9 (excepto no início do nome) O ponto final “.” Os nomes dos objectos em R são sensíveis às letras maiúsculas / minúsculas. Isto quer dizer que Cor e cor são dois objectos diferentes. Não se podem usar espaços nos nomes dos objectos. > taxa de juro <- 0.05 Error: syntax error Em alternativa poderia usar o seguinte nome que já seria válido, > taxa.de.juro <- 0.05

Vectores Um vector é uma estrutura usada para armazenar dados de um determinado tipo (ex. números), que estejam relacionados (ex. as taxas de juro dos países da UE). Um objecto pode guardar um vector. Os elementos que constituem um vector podem ser acedidos individualmente. Todos os vectores em R têm um modo e um tamanho. O modo determina o tipo de valores guardado no vector. Podemos ter vectores com modo character, logical, numeric e complex. Ou seja, podemos ter vectores para armazenar conjuntos de caracteres, valores lógicos (F ou T ou FALSE ou TRUE), números, e números complexos. O tamanho de um vector é o número de elementos que ele contém, e pode ser obtido com a função length() aplicada ao vector.

Criar vectores Para criar um vector usamos a função c(), separando os elementos do vector 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 Todos os elementos têm que ser do mesmo tipo (modo). Caso tentemos criar um vector com elementos de tipo diferente o R vai forçá-los a ser do mesmo tipo, alterando-os. > v <- c(4,7,23.5,76.2,80,"rrt") [1] "4" "7" "23.5" "76.2" "80" "rrt"

As strings em R são conjuntos de caracteres englobados por aspas ou plicas, > w <- c("rrt",'ola','isto e uma string') > w [1] "rrt" "ola" "isto e uma string" Todos os vectores podem ter um elemento especial que é o NA. Este valor representa um valor desconhecido. Exemplo: se temos os lucros trimestrais de uma empresa guardados num vector, mas desconhecemos o seu valor no terceiro trimestre, poderíamos usar a seguinte instrução para criar esse vector, > lucros <- c(234000,245000,NA,124500) > lucros [1] 234000 245000 NA 124500

Aceder aos elementos dos vectores > lucros <- c(234000,245000,NA,124500) > lucros [1] 234000 245000 NA 124500 Os elementos de um vector podem ser acedidos através de um índice. Na sua forma mais simples um índice é um número indicando o elemento que pretendemos aceder. Esse número é colocado entre parênteses rectos a seguir ao nome do vector, > lucros[2] [1] 245000 Podemos alterar o conteúdo de um elemento particular de um vector, > lucros[3] <- 45000 > lucros [1] 234000 245000 45000 124500

Podemos criar vectores vazios usando a função vector(), > k <- vector() O tamanho de um vector já existente pode ser alterado atribuindo mais elementos a índices até agora inexistentes, > k[3] <- 45 > k [1] NA NA 45 Os dois primeiros elementos do vector k, que anteriormente era um vector vazio, ficaram com o valor NA ao colocarmos o valor 45 no terceiro elemento. Para diminuirmos o tamanho de um vector podemos usar a instrução de atribuição. Por exemplo, > v <- c(45,243,78,343,445,645,2,44,56,77) > v [1] 45 243 78 343 445 645 2 44 56 77 > v <- c(v[5],v[7]) [1] 445 2

Operações com vectores Um dos aspectos mais poderosos da linguagem R é a possibilidade de ''vectorizar'' a maioria das suas funções. Ao aplicar uma função a um vector, obtemos como resultado um vector de resultados. Cada elemento é o resultado de aplicar a função a cada um dos elementos do vector inicial. > v <- c(4,7,23.5,76.2,80) > x <- sqrt(v) > x [1] 2.000000 2.645751 4.847680 8.729261 8.944272 Ao atribuir a x o resultado de aplicar a função sqrt() ao vector v, estamos de facto a criar um vector com as raízes quadradas dos números contidos em v.

Operações aritméticas com vectores Podemos aplicar os operadores aritméticos a vectores, > v1 <- c(4,6,87) > v2 <- c(34,32.4,12) > v1+v2 [1] 38.0 38.4 99.0 O que acontece se tentamos realizar operações envolvendo vectores de tamanho diferente? O R vai usar um regra de reciclagem dos valores do vector mais curto até este atingir o tamanho do maior. Por exemplo, > v1 <- c(4,6,8,24) > v2 <- c(10,2) [1] 14 8 18 26 É como se o vector c(10,2) fosse de facto c(10,2,10,2). Os elementos são somados um a um.

Se os tamanhos não são múltiplos um do outro, o R imprime um aviso no écran, > v1 <- c(4,6,8,24) > v2 <- c(10,2,4) > v1+v2 [1] 14 8 12 34 Warning message: longer object length is not a multiple of shorter object length in: v1 + v2 Repare-se que um aviso não é um erro, o que quer dizer que a operação foi levada a cabo. Um número é de facto armazenado em R como um vector de tamanho 1. Logo, devido à regra da reciclagem, podemos fazer > 2*v1 [1] 8 12 16 48 O número 2 (de facto o vector c(2)!) foi reciclado até atingir o tamanho do vector v1 O resultado é a multiplicação dos elementos todos deste vector por 2.

Factores Os factores proporcionam uma forma fácil e compacta de lidar com dados categóricos (variáveis nominais). O R possui várias funções que tiram partido do facto de guardarmos informação categórica como factores em vez de usarmos strings. Suponhamos que pretendemos guardar o sexo de 10 indivíduos num vector, > s <- c('f','m','m','m','f','m','f','m','f','f') > s [1] "f" "m" "m" "m" "f" "m" "f" "m" "f" "f" Podemos transformar um vector de caracteres num factor da seguinte forma, > s <- factor(s) [1] f m m m f m f m f f Levels: f m

Suponhamos que temos 4 novos indivíduos cujo sexo também pretendemos armazenar num factor. Imaginemos que todos pertencem ao sexo masculino. Se pretendemos que o factor 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 Levels: f m Sem o parâmetro “levels”, o factor resultante teria um único nível (m), uma vez que este é o único valor que ocorre no vector de caracteres que estamos a transformar num factor.

Contagem de ocorrências em factores A função table() permite-nos contar o número de ocorrências de cada nível de um factor, > table(s) s f m 5 5 > table(outro.s) outro.s 0 4

Prompt de continuação de linha A função table() também pode ser usada para fazer tabulações cruzadas de dois factores. desde que tenham o mesmo tamanho. Imaginemos que temos um outro vector com a gama de idades dos indivíduos cujo sexo está armazenado em s. Podemos fazer uma tabulação cruzada da idade e do sexo dos 10 indivíduos, da seguinte forma, > idade <- factor(c('adulto','adulto','jovem','jovem','adulto','adulto', + 'adulto','jovem','adulto','jovem')) > idade [1] adulto adulto jovem jovem adulto adulto adulto jovem adulto jovem Levels: adulto jovem > s [1] f m m m f m f m f f Levels: f m > table(idade,s) s idade f m adulto 4 2 jovem 1 3 Prompt de continuação de linha

Sequências Podem-se gerar sequências em R de várias formas. Por exemplo, imaginemos que pretendemos criar um vector com os número de 1 a 1000. Em vez de os escrevermos todos, podemos usar, > x <- 1:1000 Devemos ter algum cuidado com a precedência do operador ``:'' em relação aos operadores aritméticos, > 10:15-1 [1] 9 10 11 12 13 14 > 10:(15-1) [1] 10 11 12 13 14

Para gerar sequências com números reais podemos usar a função seq(), O operador ``:'' também pode ser usado para gerar sequências descendentes, > 5:0 [1] 5 4 3 2 1 0 Para gerar sequências com números reais podemos usar a função seq(), > seq(-4,1,0.5) [1] -4.0 -3.5 -3.0 -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 > 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=.2) [1] -2.0 -1.8 -1.6 -1.4 -1.2 -1.0 -0.8 -0.6 -0.4 -0.2

Uma outra função bastante útil para gerar sequências é a função rep() [1] 5 5 5 5 5 5 5 5 5 5 > rep('sim',3) [1] "sim" "sim" "sim" > rep(1:3,2) [1] 1 2 3 1 2 3 A função gl() pode ser usada para gerar sequências envolvendo factores. A sintaxe desta função é gl(k,n), em que k é o número de níveis do factor e n o número de repetições de cada nível. > 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 Levels: nao sim

Sequências aleatórias 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 têm 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 a usar possa precisar. 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, > rnorm(10) [1] -0.306202028 0.335295844 1.199523068 2.034668704 0.273439339 [6] -0.001529852 1.351941008 1.643033230 -0.927847816 -0.163297158 Se preferirmos 10 números provenientes de uma distribuição normal com média 10 e desvio padrão 3, faríamos > rnorm(10,mean=10,sd=3) [1] 7.491544 12.360160 12.879259 5.307659 11.103252 18.431678 9.554603 [8] 9.590276 7.133595 5.498858

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 > rt(5,df=10) [1] -0.46608438 -0.44270650 -0.03921861 0.18618004 2.23085412 O R tem muitas mais funções para outras distribuições de probabilidade, bem como funções semelhantes para obter a densidade de probabilidade, as densidades acumuladas e os quartis das distribuições.