La plupart des résultats de cette recherche sont des outils qui produisent du Python à partir de source SAS, et plusieurs le font bien. Cette page commence une étape plus tôt : le déplacement est-il justifié pour votre base de code, que coûte la vérification du résultat, et que faire lorsque la réponse est non.
Il existe quatre voies pour sortir d'une base de code SAS, pas deux : la confier à un outil automatique, la réécrire à la main, exécuter les programmes SAS tels quels sur autre chose que SAS, ou n'y toucher à rien. Le choix dépend presque entièrement de deux questions — la quantité de code, et l'obligation ou non de reproduire les résultats produits auparavant. Tout ce qui suit est le coût de chaque voie.
Python est la meilleure destination plus souvent qu'une page comme celle-ci ne l'admet d'ordinaire. Quatre conditions rendent le choix évident : la base de code est assez petite pour qu'une personne la lise en une semaine, l'équipe écrit déjà du Python au quotidien, l'analyse doit de toute façon être refaite, et rien en aval n'exige que les nouveaux chiffres correspondent exactement aux anciens. Lorsque ces quatre conditions tiennent, une réécriture coûte moins cher que n'importe quelle couche de compatibilité, et il en sort du code que votre équipe peut maintenir sans entretenir un second langage.
Chaque option ci-dessous est la bonne réponse pour quelqu'un. Aucune n'est sans coût, et la partie coûteuse n'est jamais la syntaxe.
Outils en ligne, services d'éditeurs et grands modèles de langage prennent de la source .sas et renvoient du Python, en projetant généralement les étapes DATA sur pandas et les procédures courantes sur statsmodels ou scikit-learn. Pour quelques centaines de lignes de manipulation de données simple, c'est un vrai raccourci, et vous obtenez un point de départ lisible en quelques minutes. La facture arrive plus tard : chaque ligne du résultat doit être relue par quelqu'un qui connaît les deux langages.
Quelqu'un lit le programme SAS, comprend ce qu'il devait faire, et l'écrit en Python. C'est plus lent à démarrer et c'est la seule voie qui aboutit à du code qui ressemble à du Python plutôt qu'à du SAS déguisé. Les équipes encore satisfaites de Python deux ans plus tard y sont presque toutes arrivées ainsi, en gardant généralement l'ancien programme en service jusqu'à ce que les chiffres concordent.
La voie que les comparatifs passent sous silence. Jenner est une implémentation en salle blanche du langage SAS 9.4 écrite en Rust : elle lit directement les fichiers SAS7BDAT et exécute la source .sas telle quelle, il n'y a donc aucun code généré à relire ni second langage à entretenir. Ce qu'elle ne fait pas, c'est couvrir tout le langage SAS, et la couverture est publiée procédure par procédure pour que vous puissiez vérifier la vôtre avant d'en dépendre.
Ne rien faire est une décision réelle et souvent la bonne. Si le code est stable, si l'environnement qui l'exécute ne disparaît pas cette année et si personne ne réclame de changement, la migration que vous ne faites pas offre le meilleur rendement de cette page. Revenez-y quand un changement de plateforme, un audit ou une difficulté de recrutement imposera la question.
Le mode de défaillance d'une conversion automatique n'est pas l'erreur de syntaxe ; celle-ci apparaît dès la première exécution. C'est l'écart numérique silencieux. SAS complète les valeurs caractère par des blancs à droite, Python non ; SAS compte les dates à partir du 1 janvier 1960 tandis que pandas part du 1 janvier 1970 ; et un MERGE d'étape DATA ne se comporte pas comme un merge pandas quand la clé se répète des deux côtés. Rien de tout cela ne déclenche quoi que ce soit. Cela produit un nombre presque juste, ce qui est la pire sorte de faux. Le vrai prix d'une conversion est donc une relecture ligne à ligne par quelqu'un qui maîtrise les deux langages, plus une période où l'ancien et le nouveau tournent côte à côte sur les mêmes données jusqu'à ce que les sorties concordent — et ce prix dépend de la quantité de code, pas de son ingéniosité.
Votre code, vos données, et les journaux côte à côte. C'est la comparaison qui décide, et c'est celle que personne ne peut mener à votre place.
Démarrer l'essai gratuit