Většina výsledků tohoto hledání jsou nástroje, které ze zdroje v SAS vyrobí Python, a několik z nich to dělá dobře. Tahle stránka začíná o krok dřív: jestli je ten přesun pro vaši kódovou základnu vůbec správný, co stojí ověřit výsledek a co dělat, když odpověď zní ne.
Z kódové základny v SAS nevedou dvě cesty, ale čtyři: předat ji automatickému nástroji, přepsat ji ručně, spustit SAS programy tak, jak jsou, na něčem, co není SAS, nebo ji nechat být. Která je správná, závisí skoro jen na dvou otázkách: kolik kódu je a jestli někdo musí zopakovat dřívější výstupy. Všechno níže je cena jednotlivých cest.
Python bývá lepším cílem častěji, než stránka jako tahle obvykle přizná. Čtyři podmínky dělají volbu jasnou: kódová základna je dost malá na to, aby ji jeden člověk přečetl za týden, tým už Python píše denně, analýza se stejně bude stavět znovu a nic dál po proudu nevyžaduje, aby nová čísla přesně odpovídala starým. Když platí všechny čtyři, vyjde napsání nanovo levněji než jakákoli vrstva kompatibility a zůstane kód, který tým udrží bez druhého jazyka.
Každá možnost tady je pro někoho správná odpověď. Žádná není bez nákladů a drahá část nikdy není syntaxe.
Webové nástroje, služby dodavatelů a velké jazykové modely vezmou zdroj .sas a vrátí Python, obvykle mapují kroky DATA na pandas a běžné procedury na statsmodels nebo scikit-learn. U několika stovek řádků přímočarého zpracování dat je to skutečná zkratka a čitelný výchozí bod máte za pár minut. Účet přijde později: každý řádek výstupu musí přečíst někdo, kdo umí oba jazyky.
Někdo přečte SAS program, zjistí, co měl dělat, a napíše to v Pythonu. Rozjezd je pomalejší a je to jediná cesta, která končí kódem tvarovaným jako Python, ne jako SAS v pythonovském kabátě. Týmy, které jsou s Pythonem spokojené i po dvou letech, se tam skoro vždycky dostaly takhle, obvykle tak, že nechaly starý program běžet vedle, dokud čísla nesouhlasila.
Cesta, kterou srovnávací stránky přeskakují. Jenner je implementace jazyka SAS 9.4 vytvořená v čisté místnosti a napsaná v Rustu: čte soubory SAS7BDAT přímo a spouští zdroj .sas tak, jak je, takže není co procházet v generovaném kódu a tým nemusí nosit druhý jazyk. Co nedělá, je pokrýt celý jazyk SAS, a pokrytí je zveřejněné proceduru po proceduře, takže si tu svou ověříte dřív, než na ni vsadíte.
Nedělat nic je skutečné rozhodnutí a často to správné. Pokud je kód stabilní, prostředí, ve kterém běží, letos nezmizí a nikdo nežádá změnu, má migrace, kterou neuděláte, nejlepší návratnost na celé téhle stránce. Vraťte se k otázce, až ji vynutí změna platformy, audit nebo problém s náborem.
Automatická konverze neselhává na syntaktické chybě; ta se ukáže hned při prvním spuštění. Selhává tichým číselným rozdílem. SAS doplňuje znakové hodnoty zprava mezerami a Python ne, SAS počítá data od 1. ledna 1960, zatímco pandas od 1. ledna 1970, a MERGE v kroku DATA se nechová jako merge v pandas, když se klíč opakuje na obou stranách. Nic z toho nic nehlásí. Vyjde číslo, které je skoro správně, a to je nejhorší druh chyby. Skutečná cena je proto čtení řádek po řádku od někoho, kdo ovládá oba jazyky, plus období, kdy staré a nové běží vedle sebe nad stejnými vstupy, dokud se výstupy neshodnou — a ta cena roste s množstvím kódu, ne s jeho vynalézavostí.
Váš kód, vaše data a logy vedle sebe. To je srovnání, které rozhoduje, a nikdo ho za vás nespustí.
Začít zkušební období zdarma