Assegna la variabile alla tabella in base al contenuto del nome della tabella.Ho più tabelle aperte e devo assegnare una variabile in base a un contenuto (DC1, DC2, DC3) del nome della tabella. Se il nome della tabella contiene DC1 assegnare dt1, se il nome della tabella contiene DC2 assegnare dt2....
Tabella 1: ABC_25C_ DC1 _2024
Tabella 2: ABC_25C_ DC2 _2024
Tabella 3: ABC_25C_ DC3 _2024
Ecco la riga di comando con cui stavo provando a lavorare.
tablelist = Ottieni elenco tabelle dati() << ottieni nome;
Se(Contiene(Concatena elementi(elencotabelle), "DC1"),
dt2=XXXXXXXXX
);
Analisi e modellazione dei dati di baseRe: Assegnare una variabile alla tabella in base al contenuto del nome della tabella.Come si aprono quei tavoli? Potresti creare riferimenti durante questo processo? Li memorizzerei anche in un elenco invece di provare a utilizzare dt1, dt2, dt3 separati... per loro.
Ri: Assegnare una variabile alla tabella in base al contenuto del nome della tabella.Sono creati da qualche altro script JMP automatizzato a cui non ho accesso.
Ri: Assegnare una variabile alla tabella in base al contenuto del nome della tabella.Se puoi essere sicuro al 100% dei nomi, li memorizzerei in un elenco
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
New Table("ABC_25C_DC1_2024");
New Table("ABC_25C_DC2_2024");
New Table("ABC_25C_DC3_2024");
tablelist = Get Data Table List() << get name;
dc_tables = {};
For Each({tablename}, tablelist,
If(Starts With(tablename, "ABC_25C_DC"), // some pattern to catch correct tables
Insert Into(dc_tables, Datatable(tablename));
);
);
È quindi possibile accedervi con dc_tables[1] e così via.
Re: Assegnare una variabile alla tabella in base al contenuto del nome della tabella.
Spero che questo chiarisca ulteriormente ciò che sto cercando di ottenere.

Ri: Assegnare una variabile alla tabella in base al contenuto del nome della tabella.Non penso che questo mi fornisca ulteriori chiarimenti, mi aspetto che tu possa catturare il "tipo" della tabella dopo l'ultimo _. Se riesci a catturare il "tipo" di tabella dalla fine (dopo l'ultimo _) puoi utilizzare l'array associativo (o ancora un elenco). Puoi utilizzare Word per acquisire l'ultima parte del nome
Names Default To Here(1);
str = "ABC_25C_DC1_2024";
last_part = Word(-1, str, "_");
L'idea finale sarebbe sempre la stessa, trovare un modo per ottenere riferimenti alle tue tabelle, memorizzarli in qualche struttura dati (elenco o array associativo), ottenere le tabelle da quella struttura dati quando necessario utilizzando l'indice (elenco) o la chiave (array associativo ).