tutorial

Conectando o SAS ao RStudio

 

Muitos analistas que estão acostumados a trabalhar com a ferramenta SAS mas gostariam de utilizar suas bases de dados para aproveitarem dos recursos da linguagem R e do ambiente RStudio. Nesse tutorial iremos explicar como fazer essa conexão, para aprender a instalar o R leia esse post.

Partimos do princípio que o RStudio está instalado no computador e as bases de dados SAS estão acessíveis. Para aprender mais sobre os conceitos de R e de análise de dados visite nosso curso Introdução ao Data Science em R.

Carregando os Dados

As bases de dados do SAS são salvas em arquivos no formato sas7bdat. Esse arquivo possui uma série de informações especiais que facilitam sua utilização em ambiente SAS, porém dificulta a leitura em outras ferramentas. Para decodificar esse arquivo e fazer a importação iremos utilizar a biblioteca haven, que possui a função read_sas. Várias bibliotecas se comprometem a fazer esse trabalho, porém a haven se mostrou ser a com melhor performance e confiabilidade.

Instalação da Biblioteca haven

Para utilizarmos as funções precisaremos primeiramente instalar a biblioteca, para isso abra o RStudio e instale a biblioteca utilizando o comando abaixo:

install.packages("haven")

Após isso carregue a bilbioteaca no ambiente, utilizando o comando

library(haven)

Note que no segundo comando não é preciso a utilização de aspas duplas. Esse comando deverá ser executado sempre que se iniciar uma nova sessão.

Carregando datasets localmente

Caso você já possua um dataset SAS salvo em sua máquina ou servidor é possível fazer o carregamento apontando diretamente para o arquivo, da mesma forma que para ler um arquivo CSV ou Excel, executando o seguinte comando

base_em_R = read_sas('Base de Dados SAS.sas7bdat')

Dessa forma, a base do SAS ficará salvo ambiente R como um dataframe no arquivo base_em_R.

Carregando datasets do servidor SAS

Os datasets do SAS geralmente ficam salvos em um servidor dedicado, para fazer o download desses dados é preciso usar um protocolo chamado SFTP. É possível fazer isso utilizando o programa Filezilla ou através de códigos em R.

Filezilla

O Filezilla pode ser baixado por este link. A instalação é direta, basta abrir o arquivo de instalação e aceitar as opções padrão. Após instalado, abra o programa e clique no gerenciador de conexões.

 

Crie uma nova conexão e preecha com os dados encontrados nas configurações do seu cliente SAS Guide, com host, nome de usuário e senha.

 

Clique em Connect. No painel Remote Site irá aparecer um navegador de pastas, digite o caminho da sua libname, geralmente com o formato /sasdata/nome_de_usuario. Selecione as tabelas que deseja baixar e clique em Download.

Agora os arquivo estarão na sua pasta do computador e poderão ser importados como na sessão anterior.

Acesso via R

O mesmo processo pode ser realizado via código em R. Para isso iremos utilizar a biblioteca RCurl, que captura o arquivo do servidor e salva em formato binário, que pode então ser lido pela biblitoeca que transforma o arquivo em dataframe. Toda essa operação está consolidada na função download_from_SAS definida abaixo.

Na variável userpwd digite seu nome de usuário e senha separados por dois pontos, e na variaél url_server digite o endereço do servidor SAS.


#####################
# Carrega libraries #
#####################

install.packages("RCurl")

library(RCurl)
library(haven)

###################
# Configura acesso#
###################

url_server = "sftp://sasgridmetadados"
userpwd = "user_name:passwd"

lib = "/sasdata/libname/"

######################################
# Define função para baixar arquivos #
######################################

download_from_SAS = function(server, lib, file){

file_bin = getBinaryURL(paste(server,lib,file,".sas7bdat",
sep=""),
userpwd = userpwd)
file_sas = read_sas(file_bin)
save(file_sas, file= paste(toString(file),".Rda", sep = ""))
return(0)
}

###############
# Baixa bases #
###############

download_from_SAS(url_server, lib, "base_em_SAS")

Salvando em Formato R

Para salvar localmente os dataframes do ambiente R em formato nativo, basta utilizar a função save.

save(base_em_R, file = "base_em_R.Rda")

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *