SAUDAÇÕES!

Seja bem vindo à página do professor Pedro Albuquerque. Para saber mais sobre meu currículo, disciplinas ministradas e interesses de pesquisa, navegue no menu disponível no topo da página.

sexta-feira, 15 de maio de 2015

Revolution R - Parte 2.


Dando continuidade ao nosso estudo sobre o Revolution R, vimos no post Revolution R - Parte 1, como trabalhar inicialmente com a IDE fornecida pelo grupo Revolution Analytics.

Nesse post veremos como manipular grandes bases de dados usando para isso o Revolution R. Para isso, considere o arquivo Pobreza.csv. É claro que essa base não é uma "base grande", mas vamos fazer os exercícios com ela, e, sem perda de generalidade, podemos posteriormente utilizar algum conjunto de dados com maior massa de informações.

O primeiro comando para manipulação de banco de dados no formato *.XDF será o comando rxDataStep. O primeiro passo é ler a base de dados Pobreza.csv:


#Importa os dados no formato XDF
pobreza.xdf <- rxImport(inData = "Pobreza.csv",outFile = "pobreza.xdf", overwrite=TRUE)
Esse comando importa o arquivo Pobreza.csv e cria outro denominado pobreza.xdf o qual estará no formato nativo do Revolution R, em seguida, podemos fazer consultas simples nessa base de dados "grande". Para utilizar o comando rxDataStep, podemos escrevê-lo diretamente ou usando o Snippet:
Aqui a base Pobres.xdf será composta pelos municípios com Índice de Gini (Var09) maior ou igual a 0.40 e Incidência de Pobreza (Var03) superior a 50. Já a base Ricos.xdf será composta pelos municípios com Índice de Gini (Var09) menores do que 0.40 e Incidência de Pobreza (Var03) inferior ou igual a 50. O código é dado por:
#Cria as bases Pobres.xdf e Ricos.xdf
Pobres.xdf<- rxDataStep(inData = "pobreza.xdf", 
 outFile = "Pobres.xdf", rowSelection = Var09>=0.4 & Var03>50)

#Mostra as primeiras linhas
head(Pobres.xdf)

Ricos.xdf<- rxDataStep(inData = "pobreza.xdf", 
 outFile = "Ricos.xdf", rowSelection = Var09<0.4 & Var03<=50)

#Mostra as primeiras linhas
head(Ricos.xdf)
Para facilitar a alocação de memória podemos manter somente algumas variáveis de interesse, por exemplo, suponha que gostaríamos de ter na base somente as variáveis Var01, Var03 e Var09. Para isso, basta fazer:
#Mantêm somente as variáveis de interesse
rxDataStep(inData = "pobreza.xdf", 
 outFile = "Pobres.xdf", rowSelection = Var09>=0.4 & Var03>50,
 overwrite=TRUE,varsToKeep=c("Var01","Var03","Var09"))


#Retira as variáveis que não são necessárias
rxDataStep(inData = "pobreza.xdf", 
 outFile = "Ricos.xdf", rowSelection = Var09<0.4 & Var03<=50,
 overwrite=TRUE,varsToDrop=c("Var02","Var04","Var05",
 "Var06","Var07","Var08","Var10","Var11"))
O comando rxDataStep também pode ser utilizado para se criar novas variáveis na base de dados, por exemplo, suponha que desejamos criar uma variável Tipo que assume valor igual a 0, quando a base é Pobres.xdf e 1 quando a base é Ricos.xdf:
#Cria a variavel Tipo para a base Pobres
rxDataStep(inData = "Pobres.xdf",outFile = "Pobres.xdf",
 transforms = list(Tipo = Var01 < 0),overwrite=TRUE)

#Mostra as primeiras observações
head(Pobres.xdf)

#Cria a variavel Tipo para a base Ricos
rxDataStep(inData = "Ricos.xdf",outFile = "Ricos.xdf",
 transforms = list(Tipo = Var01 > 0),overwrite=TRUE)

#Mostra as primeiras observações
head(Ricos.xdf)
Seguiremos com mais dicas sobre o Revolution R em outros posts.