Programação SAS - Aprenda como codificar no SAS!



Este blog em SAS Programming apresenta os conceitos de programação SAS e ajuda a entender os vários fundamentos do SAS em detalhes com exemplos.

Neste blog, vou apresentar a você alguns dos conceitos importantes da programação SAS. Antes de começarmos, é importante que você se familiarize com o SAS. Meu blog anterior em Tutorial SAS irá ajudá-lo a entender o SAS, seus aplicativos e irá ajudá-lo a instalar o SAS University Edition, que usaríamos aqui como um ambiente de programação. Quer saber quais são as habilidades que você deve dominar este ano? Além disso, se você planeja entrar no Data Analytics, é uma das melhores maneiras de começar com o mesmo.

o que é fantoche e chef

O Guia de Carreira Técnica Edureka 2019 foi lançado! As funções de trabalho mais interessantes, caminhos de aprendizagem precisos, perspectivas do setor e muito mais no guia. Baixar agora.





Então, sem maisdemora,vamos começar com a programação SAS, vamos?

Este blog ajudará você a entender os seguintes tópicos:



Antes de começar a codificar, gostaria de informá-lo com alguns termos importantes que são importantes para a programação SAS.

Fundamentos da programação SAS

SAS Windows

Grandes organizações e institutos de treinamento preferem usar o SAS Windows. SAS Windows tem muitos utilitários que ajudam a reduzir o tempo necessário para escrever códigos.

A imagem a seguir mostra as diferentes partes do SAS Windows.



SAS-Windows - SAS Programming - Edureka

  • Janela de registro : É uma janela de execução. Aqui, você pode verificar a execução do seu programa. Ele também exibe erros, avisos e notas.
  • Janela de Código :Esta janela também é conhecida como janela do editor. Considere-o como um papel em branco ou um bloco de notas, onde você pode escrever seu código SAS.
  • Janela de saída : Como o nome sugere, esta janela exibe a saída do programa / código que você escreve no editor.
  • Janela de Resultado : É um índice que lista todas as saídas de programas executados em uma sessão. Como ele contém os resultados de uma sessão específica, se você fechar o software e reiniciá-lo, a janela de resultados ficará vazia.
  • Janela de exploração : Contém a lista de todas as bibliotecas do sistema. Você também pode navegar pelos arquivos suportados pelo sistema aqui.

Algumas organizações usam Linux, no entanto, sem interface gráfica de usuário, você precisa escrever o código para cada consulta. Portanto, é inconveniente de usar.

Conjuntos de dados SAS

Os conjuntos de dados SAS são chamados de arquivos de dados. Os arquivos de dados são constituídos por linhas e colunas. Linhas retêm observações e colunas retêmNomes de variáveis.

Variáveis ​​SAS

O SAS tem dois tipos de variáveis:

  • Variáveis ​​numéricas : Este é o tipo de variável padrão. Essas variáveis ​​são usadas em expressões matemáticas.
  • Variáveis ​​de caráter :Variáveis ​​de caracteres são usadas para valores que não são usados ​​em expressões matemáticas.
    Eles são tratados como texto ou strings. Uma variável se torna uma variável de caractere adicionando um‘$’ Signno final do nome da variável.

Bibliotecas SAS

A biblioteca SAS é uma coleção de arquivos SAS armazenados na mesma pasta ou diretório em seu computador.

  • Biblioteca Temporária : Nesta biblioteca, o conjunto de dados é excluído quando a sessão SAS termina.
  • Biblioteca Permanente : Os conjuntos de dados são salvos permanentemente. Portanto, eles estão disponíveis nas sessões.

Os usuários também podem criar ou definir uma nova biblioteca conhecida como bibliotecas definidas pelo usuário usando a palavra-chave LIBNAME . Estas também são bibliotecas permanentes.

Programação SAS: Estrutura do Código SAS

A programação SAS é baseada em dois blocos de construção:

  • Etapa DATA : A etapa DATA cria um conjunto de dados SAS e, em seguida, passa os dados para uma etapa PROC
  • PROC Step : A etapa PROC processa os dados

Um programa SAS deve seguir as regras mencionadas abaixo:

  • Quase todos os códigos começarão com DATA ou uma etapa PROC
  • Cada linha de código SAS termina com um ponto e vírgula
  • Um código SAS termina com RUN ou QUIT palavra-chave
  • Os códigos SAS não diferenciam maiúsculas de minúsculas
  • Você pode escrever um código em diferentes linhas ou você pode escrever várias instruções em uma linha

Agora que vimos algumas terminologias básicas, vamos começar com a programação SAS com este código básico:

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ datalines 101 Mak SQL 102 Rama SAS 103 Priya Java 104 Karthik Excel 105 Mandeep SAS Executar

No código acima, criamos um conjunto de dados denominado Employee_Info. Ele tem três variáveis, uma variável numérica como Emp_Id e duas variáveis ​​de caracteres como Emp_Name e Emp_Verticals. O comando Executar exibe o conjunto de dados na janela de saída.

A imagem abaixo mostra a saída do código mencionado acima.

Suponha que você queira ver o resultado na visualização de impressão, bem, você pode fazer isso usando um procedimento PROC PRINT, o resto do código permanece o mesmo.

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ datalines 101 Mak SQL 102 Rama SAS 103 Priya Java 104 Karthik Excel 105 Mandeep SAS Executar PROC PRINT DATA = Employee_Info Executar

A imagem abaixo mostra a saída do código acima.

Acabamos de criar um conjunto de dados e entendemos como funciona o procedimento PRINT. Agora, vamos pegar o conjunto de dados acima e usá-lo para programação futura. Digamos que queremos adicionar a data de adesão do funcionário ao conjunto de dados. Então, criamos uma variável chamada DOJ, fornecemos como entrada e imprimimos o resultado.

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ datalines 101 Mak SQL 18/08/2013 102 Rama SAS 25/06/2015 103 Priya Java 21/02/2010 104 Karthik Excel 19/05/2007 105 Mandeep SAS 11/09/2016 Executar PROC PRINT DATA = Employee_Info Run

A imagem abaixo mostra a saída do código acima. É visível que uma variável foi criada, mas o valor de DOJ não foi impresso. Em vez disso, vemos que os pontos substituíram os valores de data.


Por quê isso aconteceu? Bem, a variável DOJ não tem o sufixo ‘$’, o que significa que, por padrão, o SAS irá lê-lo como uma variável numérica. Mas, os dados que inserimos têm um caractere especial ‘/’, portanto, não imprime o resultado, pois não são dados puramente numéricos. Se você verificar a janela de log, verá uma mensagem de erro como ‘dados inválidos para a variável DOJ’

Agora, como resolvemos esse problema? Bem, uma maneira de resolver isso é usando um sufixo ‘$’ para a variável DOJ. Isso converterá a variável DOJ em caractere e você poderá imprimir valores de data. Vamos fazer as alterações no código e ver a saída.

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ $ datalines 101 Mak SQL 18/08/2013 102 Rama SAS 25/06/2015 103 Priya Java 21/02/2010 104 Karthik Excel 19/05/2007 105 Mandeep SAS 11/09 / 2016 Executar PROC PRINT DATA = Employee_Info Run

A tela de saída exibirá a seguinte saída.


Você pode ver que os valores dos dados são exibidos como datas convertendo DOJ em caracteres. No entanto, esta é uma solução temporária. Deixe-me explicar como?

Bem, imagine que um banco tenha um conjunto de dados semelhante. O conjunto de dados tem detalhes do titular da conta, como valor do empréstimo, prestações,evencimento da parcela do empréstimo. Imagine, o titular perdeu o prazo de parcelamento e o banco quer calcular o atraso. O banco terá que calcular a diferença entre o prazo final e a data atual.

Mas, se o conjunto de dados do banco tiver datas em formato de caractere, o banco não será capaz de realizar operações matemáticas nele. Este problema pode afetar nosso conjunto de dados também. Então, como resolvemos esse problema?

O próximo conceito o ajudará a superar esse problema.

Informações e formatos em SAS

É importante que você entenda bem este tópico se quiser ser bom em programação SAS.Se você se lembra, mencionei anteriormente que o SAS tem dois tipos de variáveis ​​padrão:

  • Numérico
  • Personagem

Quando o SAS encontra variáveis ​​não padrão, o SAS gerará um erro ou você não obterá a saída desejada. Para superar esse problema, o SAS usaInformadoe formatos.

Descubra mais

Informats são normalmente usados ​​para ler ou inserir dados de arquivos externos ou arquivos simples (comoarquivos de texto ou arquivos sequenciais). A informação instrui SAS sobre como lerdados em variáveis ​​SAS. O SAS tem três tipos de Informats:caractere, numérico e data / hora. As informações são nomeadas de acordo com o seguinteestrutura de sintaxe:

  • Informações do personagem: $ INFORMATw.
  • Numérico informado: INFORMATw.d
  • Data / hora informada: INFORMATw.

O ‘$’ indica uma informação de caractere. INFORMAT refere-se às vezes opcionaisNome da informação SAS. O 'w' indica a largura (bytes ou número de colunas) dovariável. O 'd' é usado para dados numéricos para especificar o número de dígitos à direita dea casa decimal. Todas as informações devem conter um ponto decimal (.) Para que o SAS possa
diferencie uma informação de uma variável SAS.

Vamos voltar ao nosso código anterior e ver se o Informat de Data / Hora nos ajuda. Então, vamos mudar o código de acordo e adicionar um Informativo de Data como segue:

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ INFORMAT DOJ ddmmyy10. datalines 101 Mak SQL 18/08/2013 102 Rama SAS 25/06/2015 103 Priya Java 21/02/2010 104 Karthik Excel 19/05/2007 105 Mandeep SAS 11/09/2016 Executar PROC PRINT DATA = Employee_Info Executar

A linha número 3 no código instrui o SAS a ler a variável 'data de adesão' (DOJ) usando a data
informat MMDDYYw. Para cada campo de data ocupa 10 espaços, o qualificador 'w.'definido como 10.

A saída do código seria a seguinte.

O resultado mostra que ainda não temos o resultado desejado, em vez disso, a coluna DOJ está mantendo alguns valores numéricos e não as datas que especificamos. Agora, por que isso? Bem, uma vez que uma data é lida com uma informação de data, o SAS armazena a data como um número. Isso significa que é lido como o número de dias entre a data e 1º de janeiro de 1960 (por exemplo: 15/03/1994 é armazenado como 12492).

A razão por trás disso é que o SAS tem três contadores separados que controlam as datas e a hora. Esses contadores de data começaram em zero em 1º de janeiro de 1960. Portanto, datas anteriores a 01/01/1960 têm valores negativos e qualquer data posterior tem um valor positivo. Todos os dias à meia-noite, o contador de data é incrementado em um.

Conta-se que os fundadores do SAS queriam usar a data de nascimento aproximada do sistema IBM 370 e escolheram 1 de janeiro de 1960 como uma aproximação fácil de lembrar.

Agora que você sabe o motivo pelo qual a coluna DOJ exibia esses números, vamos tentar resolver o problema. Para superar esse problema, usamos Format.

Formato

Informats são as instruções para ler dados, enquanto formatos são as instruções usadas para exibir oudados de saída.Definir um formato para uma variável é como você diz ao SAS para exibir os valores na variável. Os formatos são agrupados nas mesmas três classes que as informações (caractere, numérico e data / hora) e sempre contêm um ponto.

A forma geral de uma declaração de formato é:

  • FORMAT nome-da-variável FORMAT-NAME.

Vamos voltar ao nosso código com o conjunto de dados Employee_Info para ver se podemos exibir a data corretamente usando o comando FORMAT.

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ INFORMAT DOJ ddmmyy10. FORMAT DOJ ddmmyy10. datalines 101 Mak SQL 18/08/2013 102 Rama SAS 25/06/2015 103 Priya Java 21/02/2010 104 Karthik Excel 19/05/2007 105 Mandeep SAS 11/09/2016 Executar PROC PRINT DATA = Employee_Info Executar

Usamos o comando FORMAT na linha número 4 do código acima. A tela de saída a seguir nos dará a saída desejada.

Exibimos com sucesso o conjunto de dados usando o comando Formato de data. Espero que você tenha entendido como usar o formato e as informações.Vamos prosseguir com nosso blog de programação SAS e dar uma olhada em outro conceito importante.

SAS Loops

Ao fazer a programação SAS, podemos encontrar situações em que precisamos repetidamente executar umbloco de código várias vezes. É inconveniente escrever o mesmo conjunto de afirmações repetidas vezes. É aqui que os loops entram em cena. No SAS, a instrução Do é usada para implementar loops. Também é conhecido como Do Loop. A imagem abaixo mostra oforma geral das instruções Do loop no SAS.

A seguir estão os tipos de loops DO no SAS:

  • Índice : O loop continua do valor inicial até o valor final da variável de índice.
  • Enquanto : O loop continua enquanto o Enquanto condição se torna falsa.
  • Até : O loop continua até o Até condição se torna Verdadeira.

Fazer loop de índice

Usamos uma variável de índice como um valor inicial e final para Fazer loop de índice . As instruções SAS são executadas repetidamente até que a variável de índice alcance seu valor final.
Sintaxe:

Faça indexvariable = initialvalue para finalvalue Instruções SAS End

Vamos dar uma olhada no código de amostra para entender Do Index Loop. No código a seguir, VAR é a variável de índice.

DATA SampleLoop SUM = 0 Do VAR = 1 a 10 SUM = SUM + VAR END PROC PRINT DATA = SampleLoop Run

Ao executar o código acima, você obterá a seguinte saída.

system.exit (0) pode ser usado para encerrar o programa.

Loop Do While

o Fazer enquanto loop usa uma condição WHILE. Este Loop executa o bloco de código quando a condição é verdadeira e continua executando-o, até que a condição se torne falsa. Quando a condição se torna falsa, o loop é encerrado.

Sintaxe:

Instruções SAS Do While (condição) End

O código de exemplo a seguir o ajudará a entender o loop DO WHILE.

DATA SampleLoop SUM = 0 VAR = 1 Do While (VAR<15) SUM = SUM + VAR VAR+1 END PROC PRINT DATA = SampleLoop Run 

O código acima fornecerá a seguinte saída.

Do Até Loop

O loop Do Until usa um Até condição. Este Loop executa o bloco de código quando a condição é falsa e continua executando-o, até que a condição se torne verdadeira. Quando a condição se torna verdadeira, o loop é encerrado.

Sintaxe:

Instruções SAS Do Até (condição) END

Vamos dar uma olhada no programa de exemplo.

DATA SampleLoop SUM = 0 VAR = 1 Faça até (VAR> 15) SUM = SUM + VAR VAR + 1 END PROC PRINT Executar

O código tem a seguinte saída.

Assim, finalizamos o conceito de loops na programação SAS. Todos os tópicos que estudamos até agora falam sobre noções básicas de programação SAS em geral.

Agora vamos dar uma olhada em alguns procedimentos estatísticos. Esses procedimentos formarão uma base para procedimentos analíticos.

Inscreva-se em nosso canal do youtube para obter novas atualizações ..!

Procedimentos estatísticos básicos usando SAS

PROC SIGNIFICA

Este procedimento é usado para calcular a média aritmética e o desvio padrão. Para as pessoas que são novas em estatística podem achar difícil entender esses termos. Portanto, antes de começarmos a codificar e usar este procedimento. Vou tentar explicar o que esses termos significam.

Vamos começar com a média aritmética e ver como PROC MEANS é usado na programação do SAS para calculá-la.

Média aritmética

A soma do valor das variáveis ​​numéricas, dividida pelo número de variáveis, dá a você o média aritmética . Também é conhecido como média e é uma medida de tendência central. Uma medida de tendência central é um valor único que tenta descrever um conjunto de dados identificando a posição central dentro desse conjunto de dados.

Na programação SAS, você usa PROC MEANS para calcular a média aritmética. Este procedimento permite encontrar a média de todas as variáveis ​​ou poucas variáveis ​​de um conjunto de dados. Você também pode formar grupos e calcular a média de variáveis ​​específicas para aquele grupo.

Sintaxe:

PROC MEANS DATA = DATASET Class Variáveis ​​Var Variáveis
  • Variáveis : Variáveis ​​na sintaxe acima indicam variáveis ​​do conjunto de dados cuja média deve ser calculada.

Média de um conjunto de dados

Se vocêsfornecer apenas o nome do conjunto de dados sem quaisquer variáveis, você pode calcular a média de todas as variáveis ​​em um conjunto de dados.

Vamos dar uma olhada em um código de exemplo. Eu considerei um conjunto de dados SAS predefinido chamado de 'carros'. O comando a seguir exibirá o conjunto de dados.

PROC PRINT data = sashelp.CARS Run

A imagem abaixo mostra a saída do código acima.


Agora vamos usar este código de conjunto de dados e calcular a média de cada variável no conjunto de dados‘Carros’.

PROC MEANS DATA = sashelp.CARS Mean SUM MAXDEC = 2 Run

A imagem abaixo mostra a média de todas as variáveis ​​no conjunto de dados em até duas casas decimais.

Média das variáveis ​​selecionadas

Ao fornecer os nomes na opção Var, você pode obter a média das variáveis ​​especificadas. Por favor, consulte o código abaixo.

PROC MEANS DATA = sashelp.CARS mean SUM MAXDEC = 2 var cavalos de potência cilindros Executar

Média por classe

Você pode encontrar a média das variáveis ​​numéricas, organizando-as em grupos usandoalgum parâmetro para agrupá-los.Considere a seguir um exemplo de código. Vamos descobrir a média da potência para diferentes grupos categorizados pelas classes 'marca' e 'tipo' de carros diferentes.

PROC MEANS DATA = sashelp.CARS MEANS SUM MAXDEC = 2 classes make tipo var cavalo-vapor Executar

A imagem abaixo mostra a saída do código acima.

Vamos continuar com nosso blog SAS Programming e dar uma olhada em outro conceito estatístico importante.

Desvio padrão

O desvio padrão (DP) é uma medida de quão variados são os dados em um determinado conjunto de dados. Matematicamente, ele informa quão próximo está cada ponto de dados do valor médio de um conjunto de dados. Se o valor do desvio padrão for próximo a 0, isso indica que os pontos de dados estão muito próximos da média do conjunto de dados e um desvio padrão alto indica que os pontos de dados estão espalhados por uma ampla faixa de valores.

No SAS, você pode calcular o valor do desvio padrão usando dois procedimentos. Eles são:

  • PROC SIGNIFICA
  • PESQUISAS

Desvio Padrão Usando MEIOS PROC

Você pode medir o desvio padrão usando meios proc, você deve escolher o HORAS opção na etapa PROC. Ele exibirá os valores de Desvio Padrão para cada variável numérica no conjunto de dados.

Sintaxe:

PROC MEANS DATA = conjunto de dados STD

Considere este código de amostra, vamos criar outro conjunto de dados CARS1 a partir do conjunto de dados CARS na biblioteca SASHELP. Para fazer isso, vamos usar o procedimento PROC SQL. Vamos agrupar os dados usando 'tipo' e 'marca' de carros e calcular o desvio padrão para variáveis ​​selecionadas usando a opção STD com o PROC significa passo.

PROC SQL cria a tabela CARS1 como SELECT marca, tipo, potência, cilindros, peso FROM SASHELP.CARS ONDE make in ('Audi', 'BMW') RUN PROC MEANS DATA = CARS1 STD Run

O código acima fornecerá o desvio padrão para as variáveis ​​selecionadas. A imagem a seguir exibe a saída.

PROC SURVEYMEANS

Este procedimento é usado para medir o desvio padrão junto com alguns recursos avançados, como medir o desvio padrão para variáveis ​​categóricas e a variância.

Sintaxe:

PROC SURVEYMEANS opções estatísticas-palavras-chave Por variáveis ​​Variáveis ​​de classe Variáveis

A seguir está a descrição dos parâmetros usados:

  • De é usado para indicar as variáveis ​​usadas para criar grupos de observações.
  • Classe indica as variáveis ​​usadas para variáveis ​​categóricas.
  • Onde indica as variáveis ​​para as quais o SD será calculado.

Vamos dar uma olhada neste código de exemplo que descreve o uso do parâmetro de classe, que cria as estatísticas para cada um dos valores na variável de classe.

PROC SURVEYMEANS DATA = CARS1 STD Tipo de classe Var tipo cavalos-força ods estatísticas de saída = retângulo Executar PROC PRINT DATA = retângulo Executar

As imagens abaixo mostram a saída do código acima. Ele mostra a distribuição de dados para a variável ‘Horsepower’ para intervalo de confiança de 95%. (Intervalo de confiança significa um intervalo de valores definidos de modo que haja uma probabilidade especificada de que o valor de um parâmetro esteja dentro dele.)

Então, isso nos leva ao fim do blog de programação SAS. Em caso de dúvida ou problema com o conteúdo do blog, deixe-os na seção de comentários, irei resolvê-los o mais rápido possível e responder de volta.

Se você deseja aprender SAS e construir uma carreira no domínio analítico, confira nosso que vem com treinamento ao vivo conduzido por instrutor e experiência em projetos da vida real. Este treinamento o ajudará a entender o SAS em profundidade e a dominar vários conceitos da linguagem de programação SAS.

Tem alguma questão para nós? Mencione isso na seção de comentários e entraremos em contato com você.