#Criando data.frame a partir de vetores obs <- c(1,2,3,4,5,6,7,8,9,10) nome <- c("ana","maria","carlos","ricardo","laura","rafael","cristina","priscila","luciana","jose") idade <- c(20,25,35,30,43,32,31,23,29,50) rm(sexo) sexo <- scan () 1 1 2 2 1 2 1 1 1 2 conceito <- c("B","C","A","A","D","B","B","A","C","D") extra <- scan() 1 0 1 0 0 1 0 1 0 1 escola <- data.frame(obs,nome,idade,sexo,conceito,extra) escola View(escola) str(escola) # Importando banco de dados externo escolaimp <- read.table("bancodedados.csv", header=T, sep=";") View (escolaimp) str(escolaimp) escola2 <- read.csv(file.choose(), header=T, sep=";") escola2 install.packages("readxl") library (readxl) escolaxl <- read_excel("bancodedados.xlsx") View(escolaxl) install.packages("foreign") library (foreign) escoladta <- read.dta ("bancodedados.dta") View(escoladta) #Alternativa: pacote Haven (https://cran.r-project.org/web/packages/haven/haven.pdf) para ler stata e spss #"Alterando nomes de linhas ou colunas" row.names (escola) <- c("linha 1","linha 2", "linha 3" ,"linha 4", "linha 5","linha 6","linha 7", "linha 8", "linha 9", "linha 10") View (escola) colnames (escola) <- c ("obs1","nome1", "idade1", "sexo1", "conceito1", "extra1") escola names (escola) <- c ("obs","nome", "idade", "sexo", "conceito", "extra") escola #Acessando elementos de um data.frame escola [2,1] escola [2,] escola$nome escola$nome [2] escola$nome [1:3] #Transformando tipos de variáveis escola [ ,1] <- as.factor (escola[ ,1]) str(escola) escola [ ,2] <- as.character (escola[ ,2]) str(escola) escola [ ,1] <- as.numeric (escola[ ,1]) str(escola) #Adicionar ou eliminar linhas/colunas escola <- cbind (escola, nota = c(8,6,9,10,4,8,8,9,5,3)) escola escola <-rbind (escola, "linha 11" = c(11,"caio",33,2,"A",1,9)) escola #removendo uma variaveis escola <- escola [,-7] escola escola <- escola[1:10,] escola #Opcao para adicionar colunas: escola$nota <- c(8,6,9,10,4,8,8,9,5,3) escola # Selecionando 1 subgrupo escola2 <- escola[1:6,] escola2 escola2 <- escola2 [,-5] escola2[escola2$sexo==1,] #Ordenação de linhas escola [order(escola$nota),] escola[rev(order(escola$nota)),] escola [order(escola$obs),] #Separando um data.frame por grupos split (escola,sexo) #Agrupando dois banco de dados #Criando o segundo banco de dados (obs, nome, estado) estado <- c ("SP","MT","RR","RJ","SP","ES","PE","AM","SC","GO") novo <- data.frame(obs,nome,estado) novo completo <- merge (escola,novo,by="obs") completo #Valores missing conj <- c(1,2,NA,1,1,2,NA,1,1,2) completo2 <- cbind (completo, conj=c(1,2,NA,1,1,2,NA,1,1,2)) completo2 is.na(completo2$conj) rm(completo2) completo2 <- cbind (completo, peso=c(55,65,NA,75,66,45,NA,50,90,70)) completo2 is.na(completo2$peso) mean(completo2$peso) mean(completo2$peso, na.rm=TRUE) # Se eu codificar meus valores missing como 99, 9999, 0 etc completo3 <- cbind (completo, conj=c(1,2,99,1,1,2,99,1,1,2)) completo3$conj[completo3$conj==99] <- NA completo3 #Carregando banco do R help(datasets) library(help = "datasets") data (Titanic) help(Titanic) str(Titanic) #Utilizando o dplyr install.packages("tidyverse") library (tidyverse) help(tidyverse) # Alternatively, install just dplyr: install.packages("dplyr") library(dplyr) extra1 <- filter(escola, extra == 1) extra1 #Importando banco de dados vacina library(readxl) vacina <- read_excel("vacina.xlsx") View(vacina) vacina1 <- filter(vacina, escola==1 & vacinado==1) vacina2 <- filter(vacina, escola==1 , vacinado==1) filter(vacina, escola==1 & idademae<20) vacina3 <- arrange(vacina, idademae) View(vacina3) vacina3 <- arrange(vacina, desc(idademae)) View(vacina3) arrange(vacina, id) select(vacina, 1:3) select(vacina, c(id,dtnasc,dtentrev)) select(vacina, id,dtnasc,dtentrev) select(vacina, 1,2,3) select(vacina, -dtentrev,-idademae, -escmae) select(vacina, starts_with("va")) select(vacina, ends_with("mae")) select(vacina, contains("esc")) rename (vacina, obs = id, vac = vacinado) vacina1<-mutate (vacina, municipio = rep(1:5, e = 20), id2 = id+100) View(vacina1) vacina2<- mutate (vacina, idade = dtentrev - dtnasc) vacina2 vacina2 <- mutate (vacina2, idadeanos = idade / 365) vacina2$idadeanos <- as.numeric (vacina2$idadeanos) #Exportar tabelas write.table(completo, "completo.csv", sep=";") # Outra forma de abrir banco de dados nomes <- read_excel("U:/introd R/2019/Banco de dados/nomes.xlsx") nomes2 <- read.table (file.choose(), header=T, sep=";")