De meeste resultaten voor deze zoekopdracht zijn tools die Python maken uit SAS-broncode, en verschillende doen dat goed. Deze pagina begint een stap eerder: of de overstap überhaupt klopt voor uw codebase, wat het kost om het resultaat te controleren, en wat u doet als het antwoord nee is.
Er zijn vier routes uit een SAS-codebase, niet twee: hem aan een automatische tool geven, hem met de hand herschrijven, de SAS-programma's ongewijzigd draaien op iets dat geen SAS is, of hem met rust laten. Welke de juiste is hangt bijna volledig af van twee vragen: hoeveel code er is, en of iemand de eerdere uitvoer moet reproduceren. Alles hieronder is wat elke route kost.
Python is vaker de betere bestemming dan een pagina als deze gewoonlijk toegeeft. Vier voorwaarden maken het duidelijk: de codebase is klein genoeg om in een week door één persoon te worden gelezen, het team schrijft toch al dagelijks Python, de analyse wordt sowieso opnieuw opgebouwd, en niets verderop eist dat de nieuwe cijfers exact gelijk zijn aan de oude. Gelden alle vier, dan is opnieuw schrijven goedkoper dan welke compatibiliteitslaag ook, en houdt u code over die uw team kan onderhouden zonder een tweede taal mee te dragen.
Elke optie hier is voor iemand het juiste antwoord. Geen enkele is zonder kosten, en het dure deel is nooit de syntaxis.
Webtools, leveranciersdiensten en grote taalmodellen nemen .sas-broncode aan en geven Python terug, waarbij DATA-stappen meestal op pandas worden afgebeeld en de gangbare procedures op statsmodels of scikit-learn. Voor een paar honderd regels rechttoe rechtaan databewerking is dat een echte kortere weg, en u hebt in minuten een leesbaar beginpunt. De rekening komt later: elke regel van de uitvoer moet gelezen worden door iemand die beide talen kent.
Iemand leest het SAS-programma, achterhaalt wat het moest doen, en schrijft dat in Python. Het begint trager en het is de enige route die eindigt met code in de vorm van Python in plaats van SAS in een Python-jas. Teams die twee jaar later nog tevreden zijn over Python kwamen er bijna allemaal zo, meestal door het oude programma ernaast te laten draaien tot de cijfers klopten.
De route die de vergelijkingspagina's overslaan. Jenner is een clean-room-implementatie van de SAS 9.4-taal, geschreven in Rust: het leest SAS7BDAT-bestanden rechtstreeks en voert .sas-broncode uit zoals die er staat, dus er is geen gegenereerde code om na te lezen en geen tweede taal voor het team. Wat het niet doet, is de hele SAS-taal dekken, en de dekking wordt procedure voor procedure gepubliceerd zodat u de uwe kunt nakijken voordat u erop bouwt.
Niets doen is een echte beslissing en vaak de juiste. Als de code stabiel is, de omgeving waarin hij draait dit jaar niet verdwijnt en niemand om verandering vraagt, heeft de migratie die u niet doet het beste rendement van deze pagina. Pak de vraag weer op wanneer een platformwissel, een audit of een wervingsprobleem hem afdwingt.
De manier waarop een automatische conversie faalt is niet de syntaxfout; die komt bij de eerste run boven. Het is het stille numerieke verschil. SAS vult tekstwaarden rechts aan met spaties en Python niet, SAS telt datums vanaf 1 januari 1960 terwijl pandas vanaf 1 januari 1970 telt, en een MERGE in een DATA-stap gedraagt zich niet als een merge van pandas wanneer de sleutel aan beide kanten herhaalt. Niets daarvan geeft een signaal. Er komt een bijna juist getal uit, en dat is de ergste soort fout. Daarom is de echte prijs een regel-voor-regel-lezing door iemand die beide talen beheerst, plus een periode waarin oud en nieuw naast elkaar op dezelfde invoer draaien tot de uitvoer overeenkomt — en die prijs groeit met de hoeveelheid code, niet met de vernuftigheid ervan.
Uw code, uw data en de logs naast elkaar. Dat is de vergelijking die beslist, en die kan niemand voor u draaien.
Gratis proefperiode starten