A maioria dos resultados desta pesquisa são ferramentas que produzem Python a partir de código SAS, e várias fazem-no bem. Esta página começa um passo antes: se a mudança faz sentido para a sua base de código, quanto custa verificar o resultado e o que fazer quando a resposta é não.
Há quatro caminhos para sair de uma base de código SAS, não dois: entregá-la a uma ferramenta automática, reescrevê-la à mão, executar os programas SAS tal como estão sobre algo que não é SAS, ou deixá-la em paz. Qual é o certo depende quase inteiramente de duas perguntas: quanto código existe e se alguém tem de reproduzir os resultados anteriores. Tudo o que se segue é o custo de cada caminho.
Python é o melhor destino mais vezes do que uma página como esta costuma admitir. Quatro condições tornam a escolha clara: a base de código é pequena o suficiente para uma pessoa a ler numa semana, a equipa já escreve Python todos os dias, a análise vai ser refeita de qualquer forma e nada a jusante exige que os números novos coincidam exatamente com os antigos. Quando as quatro se verificam, reescrever sai mais barato do que qualquer camada de compatibilidade, e fica código que a sua equipa consegue manter sem carregar uma segunda linguagem.
Cada opção aqui é a resposta certa para alguém. Nenhuma sai sem custo, e a parte cara nunca é a sintaxe.
Ferramentas web, serviços de fornecedores e grandes modelos de linguagem recebem código .sas e devolvem Python, normalmente mapeando os passos DATA para pandas e os procedimentos comuns para statsmodels ou scikit-learn. Para umas centenas de linhas de manipulação de dados simples é um atalho a sério, e dá um ponto de partida legível em minutos. A conta chega mais tarde: cada linha da saída precisa de ser lida por alguém que conheça as duas linguagens.
Alguém lê o programa SAS, percebe o que ele pretendia fazer e escreve isso em Python. Arranca mais devagar e é o único caminho que acaba com código com forma de Python e não de SAS disfarçado. As equipas que dois anos depois continuam contentes com Python chegaram quase sempre por aqui, mantendo o programa antigo a correr ao lado até os números baterem certo.
O caminho que as páginas de comparação saltam. O Jenner é uma implementação de sala limpa da linguagem SAS 9.4 escrita em Rust: lê ficheiros SAS7BDAT diretamente e executa código .sas tal como está, pelo que não há código gerado para rever nem uma segunda linguagem para a equipa carregar. O que não faz é cobrir toda a linguagem SAS, e a cobertura é publicada procedimento a procedimento para que verifique o seu antes de depender dele.
Não fazer nada é uma decisão real e muitas vezes a acertada. Se o código é estável, o ambiente onde corre não vai desaparecer este ano e ninguém pede uma mudança, a migração que não faz tem o melhor retorno desta página. Volte à pergunta quando uma mudança de plataforma, uma auditoria ou um problema de contratação a impuser.
O modo de falha de uma conversão automática não é o erro de sintaxe; esse aparece na primeira execução. É a diferença numérica silenciosa. O SAS preenche os valores de caracteres com espaços à direita e o Python não, o SAS conta as datas a partir de 1 de janeiro de 1960 e o pandas a partir de 1 de janeiro de 1970, e um MERGE de passo DATA não se comporta como um merge do pandas quando a chave se repete dos dois lados. Nada disso levanta um aviso. Produz um número quase certo, que é o pior tipo de erro. Por isso o preço real é uma leitura linha a linha por alguém fluente nas duas linguagens, mais um período a correr o velho e o novo lado a lado sobre os mesmos dados até as saídas coincidirem; e esse preço cresce com a quantidade de código, não com a sua esperteza.
O seu código, os seus dados e os registos lado a lado. É essa a comparação que decide, e é a que ninguém pode correr por si.
Iniciar avaliação gratuita