Non sono molto abile nello scripting JSL quindi, come test, ho chiesto a ChatGPT-4 di scrivere uno script JSL per me. Ho usato la tabella dei dati "Produzione di mais, grano, soia" dai dati di esempio di JMP. La mia richiesta era:
"Ho un set di dati per analizzare la produzione di mais, grano e soia. Consiste di 5 colonne (Anno, Stato, Merce, Merci acri piantati e acri totali piantati). Potete generare uno script JSL JMP per analizzare questi dati?"
In risposta, ha generato lo script JSL mostrato di seguito. Tuttavia, quando eseguo lo script, non viene eseguito e non vengono visualizzati messaggi di errore. Non so abbastanza di JSL per sapere perché non funziona.
Sono solo curioso di sapere se qualche programmatore JSL esperto vorrebbe commentare la qualità dello script ChatGPT e magari farmi notare cosa non funziona. Questo script è spazzatura totale o è forse un piccolo errore che lo farebbe funzionare? Ho inserito manualmente i nomi dei percorsi, quindi è possibile che abbia sbagliato tutto. Sto eseguendo JMP su un Mac, quindi i nomi dei percorsi sono formattati di conseguenza.
Ecco lo script generato da ChatGPT:
// Import the data from a JMP file
dt = Open( "$SAMPLE_DATA/crop_production.jmp" );
// Calculate summary statistics for each commodity
commodities = {"corn", "wheat", "soybean"};
For( i = 1, i <= N Items( commodities ), i++,
dt_sum = dt << Summary(
Group( :Commodity ),
Weight( :Commodity acres planted ),
Statistics( Sum, Mean, Min, Max, Std Dev ),
Subsets( :Year, :State )
);
dt_sum << Select Where( :Commodity == commodities[i] );
dt_sum << Save Selected Rows(
"$SAMPLE_OUTPUT/" || commodities[i] || "_summary.jmp",
"jmp"
);
dt_sum << Delete Rows;
);
// Create a scatterplot matrix of the data
dt << Scatterplot Matrix(
Y( :Commodity acres planted, :Total acres planted ),
Group By( :Commodity ),
By( :Year, :State )
);
// Save the scatterplot matrix as an interactive HTML file
dt << Save Interactive HTML(
"$SAMPLE_OUTPUT/scatterplot_matrix.html",
Scatterplot Matrix
);
// Close the dataset
Close( dt, NoSave );