Ad esempio, utilizzare A per filtrare il numero di righe la cui età è uguale a 7.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );

La funzione Col Number() calcola il conteggio della colonna specificata
col number(:height )
Conta il numero di righe per la colonna :Height che non sono valori mancanti, quindi nell'esempio con la tabella dati Big Class, restituirà il valore di 40.
Alla funzione Col Number() può essere passato più di un valore.Il primo valore è la colonna per contare il numero di valori non mancanti e la seconda fino a n colonne aggiuntive sono colonne "Per gruppo".
col number(:Height, :age )
La chiamata alla funzione sopra, calcola il conteggio dei valori non mancanti di :Height per il valore corrente delle righe di :age.Quindi per la riga 1 nella tabella dei dati, la funzione conterà solo i valori non mancanti di :Height per le righe con il valore :Age di 12.Restituirà il valore 8. Quando si tratta della riga 9, il valore di età è 13 e il numero di valori non mancanti di :Altezza per le righe con il valore di età di 13 è 7.
Ma perché stiamo contando il numero di valori non mancanti di :Height.Per nessun altro motivo oltre a noi no non ha valori mancanti e quindi restituirà un conteggio corretto.Potremmo effettivamente utilizzare una qualsiasi delle colonne numeriche, poiché non ci sono valori non mancanti per nessuna delle colonne numeriche.
Inizialmente, avrei specificato la chiamata di funzione in questo modo
col number(:age, :age )
ma l'ho cambiato in :Height, dal momento che pensavo che usare :Age due volte sarebbe stato fonte di confusione
Grazie Jim!
dt << select where( Col Number( :height, :age ) == 7 );
dt << select where( Col Number( :weight, :age ) == 7 );
L'effetto è lo stesso b ma questa modifica non funziona:
dt << select where( Col Number( :age ) == 7 );
Non capisco il principio.
Ecco un modo per farlo
names default to here(1);
dt=open("$SAMPLE_DATA/big class.jmp");
dt << select where( col number(:height, :age) == 7);
dt7 = dt << subset( selected rows(1), selected columns(0));