Sfida con lo scripting JMP: esecuzione della piattaforma di distribuzione in uno script figlio chiamato utilizzando IncludeDa uno script padre, sto chiamando un altro script con l'istruzione Include. Questo altro script, chiamalo script figlio, genera un output che viene aggiunto all'output prodotto dallo script padre. L'output dello script figlio include l'esecuzione della piattaforma di distribuzione. La prima volta che eseguo lo script genitore, l'output dello script figlio viene accodato correttamente a quello dello script padre. La seconda volta che eseguo lo stesso script, dopo aver cambiato una scelta che non ha nulla a che fare con la distribuzione, ottengo il messaggio "Un comando all'interno dello script di distribuzione non è stato riconosciuto. Nessun dato da analizzare ", messaggio che credo sia generato se la variabile di colonna viene passata in modo errato al codice di distribuzione. Ecco il mio codice:
Esempio = Espr (c = concat ( ":" , COLY << Ottieni il nome );
Eval ( Sostituto ( expr ( rdist = rapporto (ldist = Tabella dei dati corrente () << Distribuzione (
Distribuzione continua ( Colonna (_col_), Verticale ( 0 ),
Fit Distribution (Log Normal (Density Curve ( 1 ))),
Fit Distribution (Normal (Density Curve ( 1 ))),
), Solo istogrammi))),
expr (_col_),
analizzare (C) )
));
Il codice funziona correttamente quando lo eseguo separatamente dallo script principale.
Qualcuno può aiutarmi e dirmi cosa sto sbagliando? Perché funziona una volta, ma non la seconda volta?
Ri: Sfida con lo scripting JMP: esecuzione della piattaforma di distribuzione in uno script figlio chiamato utilizzando IncluSe il codice dovrebbe funzionare, deve esserci un problema con il contenuto di una delle variabili. È difficile da tracciare a causa delle operazioni nidificate - puoi provare a separarlo un po 'in questo modo:
c = Concat( ":", colY << Get Name );
show(c);
jsl = Substitute(
Expr(
rdist = Report(
ldist = Current Data Table() << Distribution(
Continuous Distribution(
Column( _col_ ),
Vertical( 0 ),
Fit Distribution( Log Normal( Density Curve( 1 ) ) ),
Fit Distribution( Normal( Density Curve( 1 ) ) ),
),
Histograms Only
)
)
),
Expr( _col_ ), Parse( c )
);
show(jsl);
Puoi controllare la variabile jsl nella finestra di log per assicurarti che sia ben formata (se è quindi se selezioni il testo, fai clic con il tasto destro e selezioni lo script di esecuzione, dovrebbe essere eseguito correttamente.
Ri: Sfida con lo scripting JMP: esecuzione della piattaforma di distribuzione in uno script figlio chiamato utilizzando IncluSi dice che il problema si verifica solo quando si utilizza un file di inclusione - nel qual caso potrebbe essere necessario fornire un codice di esempio che illustri chiaramente l'uso del file di inclusione. Per quanto riguarda il codice che hai mostrato, sembra un po 'troppo complesso:
dt = Open("$SAMPLE_DATA/Big Class.jmp");
colY = "height";
ldist = dt << Distribution(
Continuous Distribution(
Column( Eval(colY) ),
Vertical( 0 ),
Fit Distribution( Log Normal( Density Curve( 1 ) ) ),
Fit Distribution( Normal( Density Curve( 1 ) ) ),
),
Histograms Only
);
rdist = ldist << Report;