Ottieni i nomi delle colonne dall'elenco delle colonne
Names Default to Here(1);
dt = Current Data Table();
column list = dt << Get Column Names(Continuous);
key list = dt << Get Column Group("KEYS");"elenco colonne" contiene a elenco di nomi da colonne contenenti dati continui.
"lista chiave" contiene a elenco di colonne nel gruppo "CHIAVI".
Come ottengo i nomi delle colonne da "lista chiave"? In definitiva, vorrei rimuovere tutti i nomi di colonne continue dall '"elenco di colonne" che si trovano nel gruppo "KEYS". Ho trovato un post di Craige Hales per gestire gli elenchi, ma ho bisogno di ottenerli nello stesso formato.
Re: Ottenere i nomi delle colonne dall'elenco delle colonneEcco un compito facile con cui puoi aiutarmi: una volta che ho "ottenuto i nomi delle colonne", come posso inserirli in una tabella di dati che è solo lo stesso elenco di nomi di colonne?GRAZIE Devin
Re: Ottenere i nomi delle colonne dall'elenco delle colonnePer favore, non sbattere la testa! Utilizzo Guida > Scripting Indice Invece.

Re: Ottenere i nomi delle colonne dall'elenco delle colonneGrazie per la tua nota sul contenuto che richiede stringhe letterali e "ottieni nomi di colonne" che non lo forniscono senza l'opzione "stringa". Ho sbattuto la testa contro questo per molto tempo e l'aggiunta di "stringa" l'ha risolto immediatamente.Re: Ottenere i nomi delle colonne dall'elenco delle colonneIl trucco era: Char(key list[i]))
(Non ho mai pensato di inserire il riferimento alla colonna in una stringa)Re: Ottenere i nomi delle colonne dall'elenco delle colonneEcco la soluzione a cui sono arrivato dopo aver convertito l'elenco delle chiavi in stringhe come suggerito:
// Initialize
Names Default to Here(1);
dt = Current Data Table();
key list names = {};
// Get a list of all continuous columns
column list = dt << Get Column Names(Continuous, String);
// Create a list of column names in the KEYS group
key list = dt << Get Column Group("KEYS");
For(i = 1, i <= N Items(key list), i++,
Insert Into(key list names, Char(key list[i]))
);
// Remove from the column list any column that is in the KEYS group
/* <BR />Adapted from - Re: Quick way to compare two lists (uncommon elements)?
JAN 10, 2017 6:41 AM, by Craige_Hales, STAFF (RETIRED)
*/
set1 = Associative Array(column list);
set2 = Associative Array(key list names);
// Find the names common to both lists
intersection = set1;
intersection << Intersect(set2);
// Remove the common names
cleaned list = set1;
cleaned list << Remove(intersection);
column list = cleaned list << Get Keys;
Re: Ottenere i nomi delle colonne dall'elenco delle colonneGrazie. Sto cercando di rimuovere da "elenco colonne" qualsiasi nome presente nel gruppo "Processi" (usando il tuo esempio), quindi gli elementi devono essere rimossi da "elenco colonne", non da "elenco chiavi". Mi aspetto che dovrò cercare l'elenco delle colonne per Char (elenco chiavi [i]) e, se trovato, rimuoverlo.Re: Ottenere i nomi delle colonne dall'elenco delle colonneCiò che viene restituito sia da << Get Column Names, sia da << Get Column Group sono elenchi JMP.Puoi pensarli approssimativamente come matrici di valori.Si prega di consultare la sezione Guide agli script sull'uso degli elenchi.
Di seguito è riportata una modifica del codice, che verificherà il confronto tra 2 elenchi, per i nomi di colonna trovati comuni in entrambi gli elenchi e quindi rimuovendoli dall'elenco Key List.Si noti che la funzione Contains richiede stringhe letterali per funzionare, quindi è per questo che <
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
column list = dt << Get Column Names( Continuous, string );
key list = dt << Get Column Group( "Processes" );
Show( "complete list", key list );
For( i = N Items( key list ), i >= 1, i--,
If( Contains( column list, Char( key list[i] ) ),
key list = Remove( key list, i, 1 )
)
);
Show( "final list", key list );
Nel mio esempio, l'elenco delle chiavi finisce per non avere alcun valore, poiché tutti gli elementi nel gruppo sono colonne numeriche