jsl per creare un sottoinsieme di tabella dei valori più frequenti in una colonna<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao a tutti,
Sono un nuovo utente che sta ancora imparando i fondamenti di base e di solito riesco a trovare le risposte di cui ho bisogno effettuando una ricerca, ma questa mi sfugge.
Sto cercando uno script per creare un sottoinsieme di tabella dei primi 10 valori più frequenti di una colonna selezionata. La mia soluzione attuale è creare una tabella di riepilogo, ordinare la tabella di riepilogo in base al valore discendente, selezionare le prime dieci righe, quindi tornare alla prima tabella e creare un sottoinsieme delle righe selezionate. Sono certo che esista una soluzione elegante ma non riesco proprio a trovarla. Grazie!
Ri: jsl per creare un sottoinsieme di tabella dei valori più frequenti in una colonnaCiao MS,
Grazie per la tua risposta, avrei dovuto menzionare nel mio post originale che i dati che mi interessavano erano caratteri e non numerici. Ma aggiungo la tua risposta ai segnalibri poiché in futuro dovrò eseguire lo stesso riepilogo con dati numerici.
Ri: jsl per creare un sottoinsieme di tabella dei valori più frequenti in una colonnaGrazie Jim, ha funzionato perfettamente.
Ri: jsl per creare un sottoinsieme di tabella dei valori più frequenti in una colonnaUn'alternativa sarebbe utilizzare Summarize() invece di una tabella di riepilogo e quindi saltare anche la fase di ordinamento utilizzando la funzione Rank(). Sfortunatamente, le opzioni statistiche in Riepiloga sono limitate alle colonne numeriche; lo script di esempio seguente quindi non funzionerà per le colonne di caratteri.
dt = Aprire ( "$SAMPLE_DATA/grande classe.jmp" ) ;
N = 3 ; // N. dei valori più frequenti
Riassumere ( G = di ( : età ) , C = Contare ( : età )) ;
dt << sottoinsieme ( righe ( dt << seleziona dove ( Contiene ( Inversione ( G [ Rango ( C )])[ 1 :: N ] , Car ( : età ))))) ;
Ri: jsl per creare un sottoinsieme di tabella dei valori più frequenti in una colonnaDi seguito è riportato uno script di esempio che funziona utilizzando solo le prime 5 selezioni, poiché la tabella dei dati di esempio è molto piccola.Ma penso che tu possa vedere come funziona.
I nomi predefiniti sono qui ( 1 );
dt= aprire ( "$SAMPLE_DATA/grande classe.jmp" );
dtsumm = dt << Riepilogo (
Gruppo(:altezza),
Freq( "Nessuno" ),
Peso( "Nessuno" )
);
dtsumm << Ordinare ( Per( :N righe ), Ordine( Discendente ), Sostituisci tabella( 1 ) );
dtsumm << seleziona dove ( riga ()> 5 )
dtsumm << eliminare righe ;
dtfinale = dt << Giuntura (con(dtsumm) ,
Corrispondendo alle colonne ( :height = :height ),
Rilascia multipli ( 0 , 0 ),
Includi non corrispondenze( 0 , 0 ),
Conserva l'ordine della tabella principale( 1 )
);