A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Luís Torgo, 2002 FEP, UP 1 O R é um program gratuito que permite entre outras coisas: –Escrever programas para realizar tarefas complexas. –Fazer análise.

Apresentações semelhantes


Apresentação em tema: "Luís Torgo, 2002 FEP, UP 1 O R é um program gratuito que permite entre outras coisas: –Escrever programas para realizar tarefas complexas. –Fazer análise."— Transcrição da apresentação:

1 Luís Torgo, 2002 FEP, UP 1 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.

2 Luís Torgo, 2002 FEP, UP 2 Informação básica sobre a interacção com o R Iniciar o R na FEP

3 Luís Torgo, 2002 FEP, UP 3 A janela (consola) do R O prompt Onde se vão escrever os comandos

4 Luís Torgo, 2002 FEP, UP 4 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.

5 Luís Torgo, 2002 FEP, UP 5 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

6 Luís Torgo, 2002 FEP, UP 6 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.

7 Luís Torgo, 2002 FEP, UP 7 Objectos do R O R é uma linguagem orientada aos objectos. –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.

8 Luís Torgo, 2002 FEP, UP 8 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 > y [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

9 Luís Torgo, 2002 FEP, UP 9 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: > ( )/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)

10 Luís Torgo, 2002 FEP, UP 10 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 < Error: syntax error Em alternativa poderia usar o seguinte nome que já seria válido, > taxa.de.juro <- 0.05

11 Luís Torgo, 2002 FEP, UP 11 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.

12 Luís Torgo, 2002 FEP, UP 12 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] > 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") > v [1] "4" "7" "23.5" "76.2" "80" "rrt"

13 Luís Torgo, 2002 FEP, UP 13 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] NA

14 Luís Torgo, 2002 FEP, UP 14 Aceder aos elementos dos vectores 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] Podemos alterar o conteúdo de um elemento particular de um vector, > lucros[3] < > lucros [1] > lucros <- c(234000,245000,NA,124500) > lucros [1] NA

15 Luís Torgo, 2002 FEP, UP 15 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] > v <- c(v[5],v[7]) > v [1] 445 2

16 Luís Torgo, 2002 FEP, UP 16 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] –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.

17 Luís Torgo, 2002 FEP, UP 17 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] 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) > v1+v2 [1] –É como se o vector c(10,2) fosse de facto c(10,2,10,2). Os elementos são somados um a um.

18 Luís Torgo, 2002 FEP, UP 18 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] 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 > v1 <- c(4,6,8,24) > 2*v1 [1] –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.

19 Luís Torgo, 2002 FEP, UP 19 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) > s [1] f m m m f m f m f f Levels: f m

20 Luís Torgo, 2002 FEP, UP 20 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.

21 Luís Torgo, 2002 FEP, UP 21 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 > table(outro.s) outro.s f m 0 4

22 Luís Torgo, 2002 FEP, UP 22 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

23 Luís Torgo, 2002 FEP, UP 23 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 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] > 10:(15-1) [1]

24 Luís Torgo, 2002 FEP, UP 24 O operador ``:'' também pode ser usado para gerar sequências descendentes, > 5:0 [1] Para gerar sequências com números reais podemos usar a função seq(), > seq(-4,1,0.5) [1] > seq(from=1,to=5,length=4) [1] > seq(from=1,to=5,length=2) [1] 1 5 > seq(length=10,from=-2,by=.2) [1]

25 Luís Torgo, 2002 FEP, UP 25 Uma outra função bastante útil para gerar sequências é a função rep() > rep(5,10) [1] > rep('sim',3) [1] "sim" "sim" "sim" > rep(1:3,2) [1] 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] Levels: > gl(2,5,labels=c('nao','sim')) [1] nao nao nao nao nao sim sim sim sim sim Levels: nao sim

26 Luís Torgo, 2002 FEP, UP 26 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 r func (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] [6] 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] [8]

27 Luís Torgo, 2002 FEP, UP 27 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] 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.


Carregar ppt "Luís Torgo, 2002 FEP, UP 1 O R é um program gratuito que permite entre outras coisas: –Escrever programas para realizar tarefas complexas. –Fazer análise."

Apresentações semelhantes


Anúncios Google