Nome della tabella di output dello stackCIAO,
Ho uno script che analizza dinamicamente alcune delle informazioni per la tabella dello stack e vorrei archiviare la tabella dello stack come una nuova tabella di dati.
ystr1 = ":Valore INFRASTRUTTURA, :Valore INFRASTRUTTURA 1"
infr = "Valore dell'infrastruttura";
dati = "PPT";
nome_output = "infra_updated.jmp";
gbStr = EvalInsert("dt << Stack(
colonne(
^ystr1^
),
Colonna Etichetta sorgente(^infr^ ),
Colonna dati in pila (^dati^),
Tabella di output(^nome_output^ )
)"
);
Eval(Analizza(gbStr));
Ricevo il seguente errore
Nome non risolto: infra_updated..jmp nell'accesso o nella valutazione di 'infra_updated.jmp'
Impossibile capire perché EvalInsert non funziona per la tabella di output
Automazione e scriptingRi: Nome della tabella di output dello stackLe virgolette devono racchiudere il nome specificato nella Tabella di output(). Pertanto, devono essere aggiunti al valore stringa per la variabile output_name
ystr1 = ":INFRASTRUCTURE Value, :INFRASTRUCTURE Value 1";
infr = "Infrastructure Value";
data = "PPT";
output_name = "\!"infra_updated\!"";
gbStr = Eval Insert(
"dt << Stack(
columns(
^ystr1^
),
Source Label Column(^infr^ ),
Stacked Data Column(^data^),
Output Table(^output_name^ )
)"
);
Eval( Parse( gbStr ) );
Ri: Nome della tabella di output dello stackJim ha già spiegato il motivo per cui nella tua sceneggiatura non funziona. Ti suggerirei di utilizzare metodi diversi da Eval(Parse()) poiché può essere estremamente difficile eseguire il debug e non hai l'evidenziazione della sintassi nell'editor di script
Names Default To Here(1);
/*
dt = Open("$SAMPLE_DATA/Big Class.jmp");
cols = {"age", "height"};
*/
cols = {"INFRASTRUCTURE Value", "INFRASTRUCTURE Value 1"};
infr = "Infrastructure Value";
data = "PPT";
output_name = "infra_updated";
dt_stacked = dt << Stack(
Columns(Eval(cols)),
Source Label Column(infr),
Stacked Data Column(data),
Output Table(output_name)
);
Ri: Nome della tabella di output dello stackGrazie per aver spiegato il problema.Ri: Nome della tabella di output dello stackSono abbastanza nuovo nello scripting JSL e sto ancora cercando di familiarizzarmi con esso. Ma sono d'accordo che la tua soluzione sembra più facile da eseguire il debug. GrazieRi: Nome della tabella di output dello stackHo provato la tua soluzione ma vedo questo errore. Ho i nomi delle colonne corretti nell'elenco.
"Colonna non trovata nell'accesso o nella valutazione di 'Stack', Argomento errato"
Ri: Nome della tabella di output dello stackPer me funziona bene in JMP18 (e 17) quando lo provo con l'esempio che ho lasciato nel codice
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
cols = {"age", "height"};
infr = "Infrastructure Value";
data = "PPT";
output_name = "infra_updated";
dt_stacked = dt << Stack(
Columns(Eval(cols)),
Source Label Column(infr),
Stacked Data Column(data),
Output Table(output_name)
);

Sei sicuro che i nomi delle colonne siano scritti correttamente e siano in un elenco?