Ri: Seleziona un numero dinamico di righe con JSL, selezionando le righe che soddisfano una condizioneHo provato qualcosa di simile e ho riscontrato un errore Colonna non trovata {1} nell'accesso o nella valutazione di "Argomento non valido"
Ciò che immagino è l'argomentazione interiore Selezionare() entro Aderire() .
Ho pensato che forse avrei potuto assegnare un vettore di colonne a una variabile e usare la variabile come argomento in Select ().
// Get a list of the column names
colList = TRANSPOSE << Get Column Names();
// Starting with column 3, select
For(i=3,i<= N Cols( TRANSPOSE ), i++, COLUMN( TRANSPOSE , colList[i]) << Set Selected(1) ) ;
// Assign those selected columns to a variable
Select_cols = TRANSPOSE << Get Selected Columns();
//then feed that variable into the Select() withing Join()
<SPAN class="token comment">// JOIN</SPAN>
DT <SPAN class="token operator">=</SPAN> <SPAN class="token function">Data Table</SPAN><SPAN class="token punctuation">(</SPAN> TRANSPOSE <SPAN class="token punctuation">)</SPAN> <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN><SPAN class="token messages"> Join</SPAN><SPAN class="token punctuation">(</SPAN>
With<SPAN class="token punctuation">(</SPAN> <SPAN class="token function">Data Table</SPAN><SPAN class="token punctuation">(</SPAN> CATEGORY_TABLE <SPAN class="token punctuation">)</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
Select<SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">:</SPAN>Forecast Material <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
SelectWith<SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">:</SPAN>Category <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
Select<SPAN class="token punctuation">(</SPAN> Select_cols <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN> /// was Select<SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">:</SPAN>Row <SPAN class="token number">1</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token punctuation">:</SPAN>Row <SPAN class="token number">2</SPAN> <SPAN class="token punctuation">)</SPAN>
By Matching Columns<SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">:</SPAN>Label <SPAN class="token operator">=</SPAN> <SPAN class="token punctuation">:</SPAN>Category <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
Drop multiples<SPAN class="token punctuation">(</SPAN> <SPAN class="token number">0</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token number">0</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
Include Nonmatches<SPAN class="token punctuation">(</SPAN> <SPAN class="token number">0</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token number">0</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
Preserve main table order<SPAN class="token punctuation">(</SPAN> <SPAN class="token number">1</SPAN> <SPAN class="token punctuation">)</SPAN>
<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
Seleziona un numero dinamico di colonne con JSL, selezionando le colonne che soddisfano una condizionehttps://www.jmp.com/support/help/14-2/use-set-selected-to-select-columns.shtml
Qual è il modo migliore per riscrivere qualcosa del genere?
L'intenzione è che DT sia un join di TRANSPOSE e CATEGORY_TABLE.
- CATEGORY_TABLE è una tabella a una colonna con la categoria Categoria
- TRANSPOSE è il risultato di una trasposizione dei dati
Il trucco è che TRANSPOSE non ha sempre lo stesso numero di colonne. Confusamente, l'output della funzione di trasposizione nomina le colonne aggiuntive Riga 1, Riga 2, ecc.
- Le prime due colonne di TRANSPOSE sono sempre le stesse.
- La riga 1 della colonna esisterà sempre come terza colonna.
- Colonne Le righe 2 e successive potrebbero esistere a seconda del set di dati.
Posso scrivere la funzione Select () in modo tale che Join () selezionerà almeno la colonna Riga 1 e quindi se ce ne sono più nell'ultima colonna?
// This section is only build to handle two columns named Row 1 and Row 2
DT = Data Table( TRANSPOSE ) << Join(
With( Data Table( CATEGORY_TABLE ) ),
Select( :Forecast Material ),
SelectWith( :Category ),
Select( :Row 1, :Row 2 ), // sometimes there is only one row, sometimes there are more than one rows ******How to handle this?********
By Matching Columns( :Label = :Category ),
Drop multiples( 0, 0 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 )
);
Ri: Seleziona un numero dinamico di righe con JSL, selezionando le righe che soddisfano una condizioneRimuovi gli argomenti con "Seleziona" in essi:
DT = Data Table( TRANSPOSE ) << Join(
With( Data Table( CATEGORY_TABLE ) ),
By Matching Columns( :Label = :Category ),
Drop multiples( 0, 0 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 )
);
I risultati conterranno tutte le colonne di entrambe le tabelle.
Ri: Seleziona un numero dinamico di righe con JSL, selezionando le righe che soddisfano una condizioneGrazie don. Sto cercando di aggiornare il codice di qualcun altro. Penso che questo faccia quello che vogliamo. È necessario impiegare un po 'di tempo per convalidare prima di accettare come soluzione. Non volevo che pensassi che non ho visto e apprezzato la tua risposta. Ieri stava lavorando con questo suggerimento. Grazie!Ri: Seleziona un numero dinamico di righe con JSL, selezionando le righe che soddisfano una condizioneGrazie BSwid. Fammi sapere come funziona.