Data Frames (tabelas) e Matrizes

Slides:



Advertisements
Apresentações semelhantes
Prof. José Junior Barreto TEORIA DOS DETERMINANTES
Advertisements

Matrizes especiais Matriz linha Matriz do tipo 1 x n, ou seja, com uma única linha. Por exemplo, a matriz A =[ ], do tipo 1 x 4. Matriz coluna.
Amintas engenharia.
Aula de hoje Execução de Cálculos; Referências; Criando Gráficos;
Álgebra Linear e Geometria Analítica
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.
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.
FOLHA DE CÁLCULO 4.
1 FOLHA DE CÁLCULO 6 Não existe a Folha de Cálculo 5.
1 Base de dados Consultas de agregação (sumarização) Consultas com parâmetros Relationships Consultas de acção (action queries)
2 de Junho de 2005Conclusão1 Pedro Barahona DI/FCT/UNL Junho 2005.
1 Conclusão DI/FCT/UNL 1º Semestre 2004/ Ciclos de Simulação A técnica usada no exemplo da queda livre pode ser utilizada para trajectórias a duas.
Determinantes.
Sistemas lineares.
Excel Profa. Cristina M. Nunes.
Determinantes Determinante é um número real associado a uma matriz quadrada. Notação: det A ou |A|. Determinante de uma Matriz Quadrada de 1ª Ordem. Seja.
SISTEMAS DE EQUAÇÕES.
Administrando projetos com MS Project – Unidade IV
Exercícios de revisão sobre relógios lógicos e físicos
Exercícios de revisão sobre relógios lógicos e físicos Prof. Alcides Calsavara.
Análise de regressão linear simples: abordagem matricial
A Teoria dos Determinantes
R Profa. Suzi
R - Introdução à Programação
O que você deve saber sobre
MATRIZES Prof. Marlon.
Educandário Nova Grécia Professor: Ronaldo Maio /Junho
Matrizes. 2MF. Matrizes e vectores Multi-dimensionais Não há limite para o número de dimensões de um vector São uma estrutura de dados homogênea multidimensional.
1 3. Ao fazer as alterações no slide master, estas irão ser aplicadas a todos os diapositivos "dependentes" dele.
Pequena revisão e alguns erros comuns
MATRIZES REAIS ( 2ª AULA ).
E PROF. VILSON SCHWANTES.
Amintas engenharia.
Linguagem técnica de programação I Java – REVISÃO
Matrizes Definição Tipos de matrizes Matrizes Iguais
Portfólio de matemática
Cadastro de produto Posto de Combustível.
Entendo os números inteiros
Campus de Caraguatatuba
Processamento da Informação BC-05045
MATEMÁTICA UNIDADE 2 Conteúdo: Matrizes Duração: 10 40’ 04/04/13
Calculada a solução óptima
Análise de Variância (ANOVA)
Aula prática 6 Vetores e Matrizes
Estatística Conceitos básicos1.
SISTEMAS LINEARES.
MATRIZES, DETERMINANTES E SISTEMAS LINEARES
Aula 02 Variáveis, Matrizes, Gráficos
Algoritmos e Programação I
Aula prática 6 Vetores e Matrizes
Algoritmos 1º Semestre Materia: Informática Profº: Cristiano.
Determinantes Conceito Representação Propriedades
Instituto de Aplicação Fernando Rodrigues da Silveira (CAp/UERJ)
ESTATÍSTICA “A ESTATÍSTICA é o ramo da matemática em que se recolhe, organiza, representa e trata, os dados relativos a uma determinada população.”
Matemática Divertida Potências Docente: Sandra Coelho
Campus de Caraguatatuba Aula 12: Sistemas de Equações Lineares (2)
Pequena revisão e alguns conselhos
Fundamentos de Programação
Vetores e Matrizes Ameliara Freire
Análise Exploratória de Dados
Nome alunos 1 Título UC. Título – slide 2 Conteúdo Conteúdo 2.
Campus de Caraguatatuba
BCC 101 – Matemática Discreta I
Igor Steinmacher, MSc. O maravilhoso mundo da Lógica de Programação.
Construindo tabelas NTE-ESTRELA.
Campus de Caraguatatuba Aula 16: Sistemas de Equações Lineares (4)
SEJAM BEM VINDOS ALUNOS DO COLÉGIO RODA PIÃO
Linguagem de Programação II Parte VI Professora: Flávia Balbino da Costa.
MATEMÁTICA E SUAS TECNOLOGIAS
Como Usar a Linguagem de Programação R. I. Introdução J M Fernandes.
Transcrição da apresentação:

Data Frames (tabelas) e Matrizes May 2010 Informática Aplicada Faculdade de Economia do Porto

Faculdade de Economia do Porto Sumário Data Frames (tabelas) Matrizes Importar dados para R Informática Aplicada Faculdade de Economia do Porto

Criação de um Data Frame Primeiro preparamos os vectores com os dados: > alunos <- c('zé','ana','zé','zé','mi','ana') > discs <- c('mat','inf','micro','inf','mat','mat') > notas <- c(12,15,10,11,17,10) Depois criamos o data frame, indicando nomes de colunas e os valores: > notas <- data.frame(aluno=alunos, disc=discs, nota=notas) > notas aluno disc nota 1 zé mat 12 2 ana inf 15 3 zé micro 10 4 zé inf 11 5 mi mat 17 6 ana mat 10 As colunas com valores categóricos foram convertidas em “factores” aluno disc nota zé mat 12 ana inf 15 micro 10 11 mi 17 Informática Aplicada Faculdade de Economia do Porto

Preparação fácil de Data Frame Primeiro preparamos um data frame vazio: > notas1 <- data.frame() Depois chamamos a função edit(..) para inserir os valores (maneira interactiva): notas1 <- edit(notas1) Se os valores estiver bem digitados, teremos: > notas1 aluno disc nota 1 zé mat 12 2 ana inf 15 3 zé micro 10 4 zé inf 11 5 mi mat 17 6 ana mat 10 aluno disc nota zé mat 12 ana inf 15 micro 10 11 mi 17 Informática Aplicada Faculdade de Economia do Porto

Faculdade de Economia do Porto Data frames e matrizes Data frames cada coluna pode ser vector ou factor Matrizes todos os elementos são do mesmo tipo Indexação idêntica em data frames e matrizes mas nos data frames podemos usar ainda $ Informática Aplicada Faculdade de Economia do Porto

Selecção de Elementos de Data Frames > notas$aluno [1] zé ana zé zé mi ana Levels: ana mi zé > notas$aluno[1] [1] zé > notas$notas [1] 12,15,10,11,17,10 > notas$nota[1] [1] 12 > notas$nota > 12 [1] FALSE TRUE FALSE FALSE TRUE FALSE Quem tirou notas acima de 12? > notas$aluno[notas$nota>12] [1] ana mi Informática Aplicada Faculdade de Economia do Porto

Alterar elementos de data frames > notas[4,3] [1] 11 Muda a nota do zé da informática para 18 > notas[4,3] <- 18 ou > notas$nota[4] <- 18 > notas$nota[notas$aluno=='zé'& notas$disc=='inf'] <- 18 mas há uma função com um interface simpático… > notas <- edit(notas) Informática Aplicada Faculdade de Economia do Porto

Faculdade de Economia do Porto Algumas funções úteis > nrow(notas) [1] 6 > ncol(notas) [1] 3 > colnames(notas) [1] "aluno" "disc" "nota" > rownames(notas) [1] "1" "2" "3" "4" "5" "6" "7" > mode(notas) [1] "list" > class(notas) [1] "data.frame“ > summary(notas) aluno disc nota ana:2 inf :2 10:2 mi :1 mat :3 12:1 zé :3 micro:1 15:1 17:1 18:1 aluno disc nota zé mat 12 ana inf 15 micro 10 11 mi 17 Informática Aplicada Faculdade de Economia do Porto

Faculdade de Economia do Porto Exercícios Veja as notas de informática Quais os alunos que tiraram notas maiores do que 12 e a que disciplinas? Calcule a média das notas Calcule a média das notas de informática Quantas notas maiores do que 12 houve a informática? Qual a nota mais alta a matemática? Quem tirou notas entre 12 e 16? Informática Aplicada Faculdade de Economia do Porto

Faculdade de Economia do Porto Matrizes Servem para guardar dados em duas dimensões. Exemplo: guardar vendas de 4 produtos (p1, p2, p3, p4) em 2 lojas diferentes (loja1, loja2) matriz de 2 linhas (lojas) e 4 colunas (produtos) > m <- matrix(c(23,54,12,56,76,23,34,15), 2, 4) > m [,1] [,2] [,3] [,4] [1,] 23 12 76 34 [2,] 54 56 23 15 Os elementos do vector c(…) são dispostos por coluna. podem ser dispostos por linha opcionalmente (fazer help(matrix)) Todos os elementos da matriz são do mesmo tipo Uma matriz pode ser vista como um vector com duas dimensões. Informática Aplicada Faculdade de Economia do Porto

Faculdade de Economia do Porto Matrizes Se quiser preencher os valores em linha, pode acrescentar byrow=T: m <- matrix(c(23,12,76,34, 54,56,23,15), 2, 4, byrow=T) > m [,1] [,2] [,3] [,4] [1,] 23 12 76 34 [2,] 54 56 23 15 Existe uma maneira fácil de introduzir os dados de uma matriz: m1 <- matrix(,2,4) data.entry(m1) Note que a função data.entry já faz a atribuição de valores à matriz m1) Informática Aplicada Faculdade de Economia do Porto

Faculdade de Economia do Porto Matrizes Usamos índices de forma semelhante aos vectores. Exemplo: quais foram as vendas na loja2, produto p3? queremos o elemento da matriz na linha 2, coluna 3 > m[2,3] [1] 23 Todas as vendas da loja1 (o resultado é um vector) > m[1, ] [1] 23 12 76 34 Todas as vendas do produto p3 (o resultado é um vector) > m[ ,3] [1] 76 23 Informática Aplicada Faculdade de Economia do Porto

Nomes de linhas e colunas Podemos dar nomes às linhas e às colunas. > colnames(m) <- c('p1','p2','p3','p4') > rownames(m) <- c('loja1','loja2') > m p1 p2 p3 p4 loja1 23 12 76 34 loja2 54 56 23 15 E usar os nomes nos índices. > m['loja2','p3'] [1] 23 Informática Aplicada Faculdade de Economia do Porto

Multiplicação de Matrizes Operação rep(1, 6) gera uma sequência de 1’s (repetição 6 vezes) > rep(1, 6) 1 1 1 1 1 1 Para obtermos a multiplicação de matrizes, usamos %*%: Exemplo: > m1 <- matrix(rep(1,6), 2,3) > m1 [,1] [,2] [,3] [1,] 1 1 1 [2,] 1 1 1 > m2 <- matrix(rep(1,6), 3,2) > m2 [,1] [,2] [1,] 1 1 [2,] 1 1 [3,] 1 1 m1 %*% m2 % multiplicação de matrizes, [1,] 3 3 [2,] 3 3 Informática Aplicada Faculdade de Economia do Porto

Outras operações com matrizes [,1] [,2] [,3] [1,] 1 1 1 [2,] 1 1 1 Transposição da matriz m1 > t(m1) [,1] [,2] [1,] 1 1 [2,] 1 1 [3,] 1 1 Determinante > m3 <- martix(c(34,-23,43,5),2,2) > det(m3) > 1159 Matriz inversa de uma matriz quadrada > solve(m3) [,1] [,2] [1,] 0.004314064 -0.03710096 [2,] 0.019844694 0.02933563 Informática Aplicada Faculdade de Economia do Porto

Exemplo: sistemas de equações lineares A função solve() também pode ser usada para resolver sistemas de equações lineares: Exemplo: > coefs <- matrix(c(-4,54.3,0.3,-4),2,2) > colnames(coefs) <- c('x','y') > rownames(coefs) <- c('eq1','eq2') > coefs x y eq1 -4.0 0.3 eq2 54.3 -4.0 > ys <- c(12.3,45) > solve(coefs,ys) x y 216.2069 2923.7586 Informática Aplicada Faculdade de Economia do Porto

Exercícios sobre matrizes Suponha que pretende guardar as vendas nos 12 meses do último ano das 2 sucursais de uma empresa. Escolha o objecto do R apropriado e tire partido das potencialidades do R para facilitar o acesso a esta informação. Qual o total global das vendas? Qual o valor médio de vendas por cada mês e cada loja? Como saber qual o volume de vendas médio de cada sucursal ao longo do ano? (use apply) Construa um gráfico de barras com as vendas de uma das sucursais ao longo do ano. A função cbind(matriz, coluna) permite acrescentar colunas a uma matriz, desde que tenham o número certo de elementos. Acrescente à matriz que criou os dados de vendas de uma terceira sucursal. Informática Aplicada Faculdade de Economia do Porto

Faculdade de Economia do Porto Respostas Suponha que pretende guardar as vendas nos meses do último ano das 2 sucursais de uma empresa. Escolha o objecto do R apropriado e tire partido das potencialidades do R para facilitar o acesso a esta informação. > vendas <- matrix(c(23,43,54,23,53,43,54,65,76,34,65,34,546,67, + 35,45,56,57,34,34,46,56,57,678),2,12) > colnames(vendas) <- c('Jan','Fev','Mar','Abr','Mai','Jun','Jul', + 'Ago','Set','Out','Nov','Dez') > rownames(vendas) <- c('Braga','Faro') Qual o total global de vendas? > sum(vendas) Como saber qual o volume de vendas médio de cada loja ao longo do ano? > mean(vendas['Braga',]) > mean(vendas['Faro',]) Experimente esta alternativa: > apply(vendas,1,mean) tente também > apply(vendas,2,mean) Construa um gráfico de barras com as vendas de uma das sucursais ao longo do ano. > barplot(vendas['Braga',],main='Vendas em Braga', + ylab='Volume de Vendas') Informática Aplicada Faculdade de Economia do Porto

Importar conjuntos de dados R lê o formato “universal” csv (comma separated values) > d <- read.csv('internet.txt') Antes de usarmos o read.csv, devemos indicar ao R qual é a pasta (directório) de trabalho. pais,servico,ano,subscritores Bélgica,ADSL,1999,1000 Dinamarca,ADSL,1999,800 Suécia,ADSL,1999,0 P. Baixos,ADSL,1999,0 Áustria,ADSL,1999,900 Finlândia,ADSL,1999,0 Alemanha,ADSL,1999,5000 Espanha,ADSL,1999,1848 .... Informática Aplicada Faculdade de Economia do Porto

Faculdade de Economia do Porto Exportar dados … do Excel save as csv alguns problemas: separador (;), caracteres com acentos… para o Access criar tabela com importação de dados (insert table) do Access export table (menu File) ODBC (Open DB Connectivity) standard que permite ligar “qualquer” programa a “qualquer” BD relacional. O R tem um package ROBDC Informática Aplicada Faculdade de Economia do Porto

Faculdade de Economia do Porto Exercícios Obtenha os dados sobre a subscrição de banda larga na UE. Utilize a função summary sobre o data frame correspondente. Qual o número de subscritores de banda larga da UE em 2002? E qual é esse número apenas para o serviço “ADSL”? (sugestão: use attach(dataframe) para poder referir-se às colunas de forma mais sucinta. Em que país, em que serviço e em que ano se registou o valor mais alto de subscritores? (use which.max) Qual a evolução do serviço “CABO” em Portugal nos anos em estudo? (filtre o dataset para as condições indicadas, faça um barplot) Estude a evolução relativa dos dois serviços em Portugal, de 1999 a 2002, construindo um gráfico (com plot), com um dos serviços no eixo do x e o outro no eixo dos y. Em que país houve o maior crescimento relativo em 2002, para o serviço “ADSL”? E para o serviço CABO? sugestão: calcule o quociente entre dois vectores com o número de subscritores, veja qual o índice do máximo, e obtenha o nome do país com esse índice. Qual o país onde houve um maior crescimento relativo global em 2002? Informática Aplicada Faculdade de Economia do Porto

Importação de dados Excel Exercício com dados de investimento Buscar a folha de Excel “Investimento_em_Portugal.xls” no Moodle Usar Excel para gerar um ficheiro “Investimento_em_Portugal.csv” No R, buscar os dados usando invest.port <- read.csv(“Investimento_em_Portugal.csv”,sep=“;”) 1. Calcular as médias dos investimentos para cada país e para os anos 2001 e 2002. 2. Calcular as médias de investimento para Alemanha e Espanha para 2002 e decidir qual era maior. 3. Elaborar um gráfico que mostra a evolução mensal de investimento para Alemanha. Informática Aplicada Faculdade de Economia do Porto

Importação de dados de Access Exercício com dados sobre notas Buscar a base de dados do Access “Alunos.mdb” no Moodle Construir no Access um consulta que una os dados das tabelas Alunos, Notas e Disciplinas e que mostre os campos cod_aluno, nome, disciplina e nota Exportar a consulta para um ficheiro com o nome “notas_de_alunos.csv” (não esquecer de indicar include field names on first row) No R, buscar os dados usando notas <- read.csv(“notas_de_alunos.csv”,sep=“;”) 1. Calcular a média da disciplina “Microeconomia” 2. Calcular as médias do aluno “Artur Filipe Barroso” e da “Sofia Marta Carvalho” e decidir sobre qual o melhor. 3. Elaborar um histograma que reflita a distribuição das notas da disciplina de “Microeconomia” Informática Aplicada Faculdade de Economia do Porto