La maggior parte dei risultati di questa ricerca sono strumenti che producono Python a partire dal sorgente SAS, e diversi lo fanno bene. Questa pagina parte un passo prima: se lo spostamento ha senso per la vostra base di codice, quanto costa verificare il risultato e cosa fare quando la risposta è no.
Le strade per uscire da una base di codice SAS sono quattro, non due: affidarla a uno strumento automatico, riscriverla a mano, eseguire i programmi SAS così come sono su qualcosa che non è SAS, oppure lasciarla stare. Quale sia quella giusta dipende quasi solo da due domande: quanto codice c'è e se qualcuno deve riprodurre i risultati prodotti in passato. Tutto quello che segue è il costo di ciascuna strada.
Python è la destinazione migliore più spesso di quanto una pagina come questa di solito ammetta. Quattro condizioni rendono la scelta netta: la base di codice è abbastanza piccola perché una persona la legga in una settimana, il team scrive già Python ogni giorno, l'analisi va comunque rifatta e nulla a valle pretende che i numeri nuovi coincidano esattamente con quelli vecchi. Quando valgono tutte e quattro, riscrivere costa meno di qualunque strato di compatibilità, e resta codice che il team può mantenere senza portarsi dietro un secondo linguaggio.
Ogni opzione qui è la risposta giusta per qualcuno. Nessuna è senza costo, e la parte cara non è mai la sintassi.
Strumenti web, servizi di fornitori e grandi modelli linguistici prendono il sorgente .sas e restituiscono Python, di solito mappando i passi DATA su pandas e le procedure più comuni su statsmodels o scikit-learn. Per qualche centinaio di righe di manipolazione dati lineare è una scorciatoia vera, e dà un punto di partenza leggibile in pochi minuti. Il conto arriva dopo: ogni riga dell'output va letta da qualcuno che conosce entrambi i linguaggi.
Qualcuno legge il programma SAS, capisce cosa doveva fare e lo scrive in Python. Parte più lentamente ed è l'unica strada che finisce con codice fatto come Python e non come SAS travestito. I team che due anni dopo sono ancora contenti di Python ci sono arrivati quasi sempre così, tenendo il vecchio programma in funzione accanto finché i numeri non tornavano.
La strada che le pagine di confronto saltano. Jenner è un'implementazione clean room del linguaggio SAS 9.4 scritta in Rust: legge direttamente i file SAS7BDAT ed esegue il sorgente .sas com'è, quindi non c'è codice generato da rivedere né un secondo linguaggio da portarsi dietro. Quello che non fa è coprire tutto il linguaggio SAS, e la copertura è pubblicata procedura per procedura, così potete controllare la vostra prima di dipenderne.
Non fare nulla è una decisione vera e spesso quella giusta. Se il codice è stabile, l'ambiente in cui gira non sparisce quest'anno e nessuno chiede un cambiamento, la migrazione che non fate ha il rendimento migliore di questa pagina. Tornateci quando un cambio di piattaforma, un audit o una difficoltà di assunzione imporranno la domanda.
Il modo in cui fallisce una conversione automatica non è l'errore di sintassi; quello salta fuori alla prima esecuzione. È la differenza numerica silenziosa. SAS riempie i valori carattere con spazi a destra e Python no, SAS conta le date dal 1 gennaio 1960 mentre pandas parte dal 1 gennaio 1970, e un MERGE di passo DATA non si comporta come un merge di pandas quando la chiave si ripete da entrambi i lati. Niente di tutto questo segnala qualcosa. Esce un numero quasi giusto, che è il peggior tipo di sbagliato. Per questo il prezzo vero è una lettura riga per riga da parte di chi padroneggia entrambi i linguaggi, più un periodo in cui vecchio e nuovo girano affiancati sugli stessi dati finché gli output non coincidono; e quel prezzo cresce con la quantità di codice, non con la sua ingegnosità.
Il vostro codice, i vostri dati e i log affiancati. È quello il confronto che decide, ed è quello che nessuno può fare al posto vostro.
Inizia la prova gratuita