Panoramica
Utilizzando il linguaggio di scripting JMP (JSL) puoi scrivere uno script che assegna valori in base ai dati memorizzati in una tabella dati diversa. Il seguente script di esempio dimostra come puoi usare una tabella di ricerca per assegnare livelli di istruzione in base all'età di uno studente. Lo script esegue le seguenti operazioni:
- Aprire la tabella dati originale contenente un elenco di studenti e le loro età.
- Aggiungere una nuova colonna alla tabella dati originale per memorizzare il valore della scuola.
- Creare una tabella di ricerca contenente le fasce d'età per i livelli scolastici.
- Esegui un ciclo su ogni riga della tabella dati originale:
- Ottenere il numero di riga nella tabella di ricerca in cui l'età rientra nell'intervallo di età.
- Assegnare il valore della scuola dalla riga della tabella di ricerca alla nuova colonna nella tabella dati originale.
Istruzioni
In una sessione JMP, fai clic sul menu File e seleziona Nuovo ► Script . Copia lo script sottostante e incollalo nella finestra dello script. Per eseguire lo script di esempio, fai clic sul menu Modifica e seleziona Esegui script .
/* Open a sample data table */
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
/* Add a column for the assignment */
dt << New Column( "School", Character );
/* Create a lookup table */
lt = New Table( "SchoolLookup",
Add Rows( 3 ),
New Column( "SchoolLevel", Character, Nominal, Set Values( {"Elementary", "Middle", "High"} ) ),
New Column( "Low", Numeric, Continuous, Format( "Best", 12 ), Set Values( [5, 13, 15] ) ),
New Column( "High", Numeric, Continuous, Format( "Best", 12 ), Set Values( [12, 14, 18] ) )
);
/* Loop through each row of the original data table */
For( i = 1, i <= N Rows( dt ), i++,
/* Obtain a matrix contining the row number of the lookup table where the age falls within the range */
ageRange = lt << Get Rows Where(
Column( lt, "Low" )[] <= Column( dt, "age" )[i] & Column( dt, "age" )[i] <= Column( lt, "High" )[]
);
/* Extract the row number from the matrix */
r = ageRange[1];
/* Assign the school value to the original data table */
Column( dt, "School" )[i] = Column( lt, "SchoolLevel" )[r];
);
Documentazione aggiuntiva
Ulteriori informazioni sul linguaggio di scripting JMP sono disponibili nella Guida allo scripting JMP . È possibile accedere alla guida dall'interno di JMP facendo clic sul menu Aiuto e selezionando Guida JMP . Dall'indice online, scegliere Guida allo scripting .
[In precedenza JMP Nota 46535]
alternativa1: usa Tabelle/Aggiorna
differenza: usa r= ageRange[Length(agerange)] invece di agerange[1]
alternativa2: usa Tabelle/Join
differenza: genera una nuova tabella