R Profa. Suzi [email protected] http://euler.mat.ufrgs.br/~camey/ Aula 02/05/08 Maiores detalhes: http://leg.ufpr.br/~paulojus/embrapa/Rembrapa/ Dados no R Entrando com dados diretamento no R Lendo dados de um arquivo texto Importando dados de outros programas Carregando dados já disponíveis no R Acesso a planilhas e bancos de dados relacionais Análise descritiva Descrição univariada Descrevendo o conjunto de dados “milsa” de Bussab & Morettin Uma demonstração de recursos gráficos do R Exercícios Dados no R: Entrando com dados diretamente no R Definindo vetores: como já vimos! > a2 <- c(23, 56, 34, 23, 12, 56) > a3 <- 1:10 > a4 <- (1:10) * 10 > a5 <- rep(3, 5) > a6 <- rep(c(5, 8), 3) > a7 <- rep(c(5, 8), each = 3) Dados no R: Entrando com dados diretamente no R Usando a função scan() y <- scan() #1: 11 #2: 24 #3: 35 #4: 29 #5: 39 #6: 47 #7: #Read 6 items Dados no R: Entrando com dados diretamente no R Usando a função edit() a8 <- edit(data.frame()) Dados no R: Entrando com dados diretamente no R Corrigindo e/ou alterando dados > y[3] <- 25 > y[y >= 30] <- 30 Dados no R: Lendo dados de um arquivo texto Primeiro mudar o diretório. > ex01 <- read.table("gam01.txt") > ex02 <- read.table("exemplo02.txt", head=T) > ex03 <- read.table("dadosfic.csv", head=T, sep=":",dec=",") > read.table("http://www.mat.ufrgs.br/~camey/R/gam01.txt") Dados no R: Importando dados de outros programas Primeiro carregar o pacote “foreign”: > require(foreign) read.dbf() para arquivos DBASE read.epiinfo() para arquivos .REC do Epi-Info read.mtp() para arquivos "Minitab Portable Worksheet" read.S() para arquivos do S-PLUS restore.data() para "dumps"do S-PLUS read.spss() para dados do SPSS read.systat() read.dta() para dados do STATA read.octave() para dados do OCTAVE (um clone do MATLAB) Para dados do SAS há ao menos duas alternativas: O pacote foreign disponibiliza read.xport() para ler do formato TRANSPORT do SAS e read.ssd() pode escrever dados permanentes do SAS (.ssd ou .sas7bdat) no formato TRANSPORT, se o SAS estiver disponível no seu sistema e depois usa internamente read.xport() para ler os dados no R. O pacote Hmisc disponibiliza sas.get() que também requer o SAS no sistema. Dados no R: Carregando dados já disponíveis no R O R disponibiliza diversos bancos de dados. Para listá-los use os comandos: >data() >data(“pacote”) Exemplos: > data(mtcars) > head(mtcars) > require(MASS) > data(topo) > head(topo) Dados no R: Acesso a planilhas e bancos de dados relacionais > require(RODBC) > xlscon <- odbcConnectExcel(“Siga.xls”) > dados1 <- sqlFetch(xlscon,“Plan1”) > odbcClose(xlscon) > head(dados1) Análise descritiva: Descrevendo o conjunto de dados “milsa” de Bussab & Morettin Dados: http://leg.ufpr.br/~paulojus/embrapa/Rembrapa/R embrapase9.html#x10-530009.2 entrar com os dados fazer uma análise descritiva Análise descritiva: Descrevendo o conjunto de dados “milsa” de Bussab & Morettin Criar o banco: > milsa <- edit(data.frame()) > milsa Alterar o banco: > fix(milsa) Análise descritiva: Descrevendo o conjunto de dados “milsa” de Bussab & Morettin Dar nome as categorias: >milsa$civil<-factor(milsa$civil,label=c("solteiro","casado"),levels=1:2) >milsa$instrucao<factor(milsa$instrucao,label=c("1oGrau","2oGrau","Superior"),lev= 1:3,ord=T) >milsa$regiao<factor(milsa$regiao,label=c("capital","interior","outro"),lev=c(2,1,3)) > head(milsa) Análise descritiva: Descrevendo o conjunto de dados “milsa” de Bussab & Morettin Criar variáveis: > milsa<-transform(milsa,idade=ano+mes/12) ou > milsa$idade<-milsa$ano+milsa$mes/12 Para simplificar a digitação: > attach(milsa) Análise descritiva: Descrição univariada Variável Qualitativa Nominal > civil > is.factor(civil) > civil.tb<-table(civil) > 100 * table(civil)/length(civil) > prop.table(civil.tb) > pie(table(civil)) > civil.mo<-names(civil.tb)[civil.tb == max(civil.tb)] Análise descritiva: Descrição univariada Variável Qualitativa Ordinal > instrucao > is.factor(instrucao) > instrucao.tb <- table(instrucao) > prop.table(instrucao.tb) > barplot(instrucao.tb) > instrucao.mo<-names(instrucao.tb)[instrucao.tb==max(instrucao.tb)] > median(as.numeric(instrucao)) > levels(milsa$instrucao)[median(as.numeric(milsa$instrucao))] Análise descritiva: Descrição univariada Variável quantitativa discreta: gráficos > filhos > is.factor(filhos) > is.numeric(filhos) > filhos.tb <- table(filhos) > filhos.tbr <- prop.table(filhos.tb) > plot(filhos.tb) > plot(filhos.tbr) > filhos.fac <- cumsum(filhos.tbr) > plot(filhos.fac, type = "S") Análise descritiva: Descrição univariada Variável quantitativa discreta: medidas de locação > filhos.mo <- names(filhos.tb)[filhos.tb == max(filhos.tb)] > filhos.md <- median(filhos, na.rm = T) > filhos.me <- mean(filhos, na.rm = T) > filhos.me <- mean(filhos, trim = 0.1, na.rm = T) > filhos.qt <- quantile(filhos, na.rm = T) trim=0.1: elimina 10% das maiores e menores observações na.rm=T: necessário pois existem missings Análise descritiva: Descrição univariada Variável quantitativa discreta: medidas de dispersão > range(filhos, na.rm = T) > filhos.A <- diff(range(filhos, na.rm = T)) > var(filhos, na.rm = T) > filhos.dp <- sd(filhos, na.rm = T) > filhos.cv <- 100 * filhos.dp/filhos.me > filhos.qt <- quantile(filhos, na.rm = T) > filhos.ai <- filhos.qt[4] - filhos.qt[2] > summary(filhos) Análise descritiva: Descrição univariada Variável quantitativa Contínua: > salario > is.factor(salario) > is.numeric(salario) > range(salario) > nclass.Sturges(salario) > args(cut) > args(cut.default) > salario.tb <- table(cut(salario, seq(3.5, 23.5, l = 8))) > prop.table(salario.tb) Análise descritiva: Descrição univariada Variável quantitativa Contínua: > hist(salario) > boxplot(salario) > stem(salario) gráficos Análise descritiva: Descrição univariada Variável quantitativa Contínua: medidas de localização e dispersão como no caso discreto Análise descritiva: Uma demonstração de recursos gráficos do R > demo(graphics) > file.show(system.file("demo/graphics.R",packag e="graphics")) Análise descritiva: Exercícios http://leg.ufpr.br/~paulojus/embrapa/Rembrapa/Re mbrapase9.html#x10-660009.6