eliminazione colonna con refsCIAO
Ho scritto uno script per eliminare una colonna.Tuttavia, ricevo l'errore "Impossibile eliminare questa colonna mentre la formula fa riferimento a un'altra colonna. "
Non ci sono formule, ma se uso manualmente l'opzione "Rimuovi Refs", posso eliminare la colonna manualmente.
Ho bisogno di imparare come usare questa funzione nel mio script per usare "Remove Refs"
Sto usando JMP 16.1.0
Modellazione statistica avanzataAutomazione e scriptingConsumatori e ricerche di mercatoMiscelazione e pulizia dei datiRe: eliminare colonna con refsIl problema che ho segnalato al supporto JMP è stato ora divulgato come bug ed è stato segnalato al reparto R&S.
Poiché è possibile rimuovere le formule in modo interattivo, ho avuto l'idea che potresti usare << Elimina proprietà ("Formula") invece di << Elimina formula e sembra funzionare, ma starei molto attento con le formule durante la creazione di tabelle di riepilogo poiché potrebbero avere delle interazioni molto strane
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//create some formula colums
dt << New Column("deduction", Numeric, "Continuous", Format("Best", 12), Formula(:height - :weight));
dt << New Column("concat_col", Character, "Nominal", Formula(:name||"_"||Char(:name)));
dt_summary = dt << Summary(
Group(:name,:sex, :concat_col),
Mean(:height),
Mean(:deduction),
Freq("None"),
Weight("None"),
Link to original datatable(0)
);
Try(
f1 = Column(dt_summary, "concat_col") << Get Formula;
show(f1);
Column(dt_summary, "concat_col") << Delete Formula;
f2 = Column(dt_summary, "concat_col") << Get Formula;
show(f2);
,
show(exception_msg);
);
Try(
f3 = Column(dt_summary, "concat_col") << Get Formula;
show(f3);
Column(dt_summary, "concat_col") << Delete Property("Formula");
f4 = Column(dt_summary, "concat_col") << Get Formula;
show(f4);
dt_summary << Delete Column("name");
,
show(exception_msg);
);
/*
Close(dt_summary, no save);
Close(dt, no save);
*/Re: eliminare colonna con refsIl problema è correlato alla tabella di riepilogo?
Proprio oggi ho notato uno strano comportamento con le tabelle di riepilogo quando ho provato a rimuovere le formule. Attualmente sto testando il problema e invierò un ticket al supporto JMP dopo aver fornito un esempio corretto. Posso anche pubblicare l'esempio qui dopo che è pronto.
Modificare:
Ecco un rapido esempio del problema che ho riscontrato oggi (uso abbastanza raramente le formule...):
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//create some formula colums
dt << New Column("deduction", Numeric, "Continuous", Format("Best", 12), Formula(:height - :weight));
dt << New Column("concat_col", Character, "Nominal", Formula(:name||"_"||Char(:name)));
dt_summary = dt << Summary(
Group(:name,:sex, :concat_col),
Mean(:height),
Mean(:deduction),
Freq("None"),
Weight("None"),
Link to original datatable(0)
);
Try(
dt_summary << Delete Column("name");
,
show(exception_msg);
);
Try(
f = Column(dt_summary, "concat_col") << Get Formula;
show(f);
Column(dt_summary, "concat_col") << Delete Formula;
,
show(exception_msg);
);
/*
Cannot delete column "name" while it is referenced by the formula of column "concat_col".
Removing a formula leaves the data unchanged. Removing references replaces each reference with an empty value. These effects are permanent and cannot be undone.
f = :name || "_" || Char(:name);
exception_msg = {"Column concat_col has no formula"(1, 2, "Delete Formula", Delete Formula /*###*/)};
*/
Formula non visibile nell'elenco delle colonne a sinistra e formula non visibile nemmeno nella casella del pannello Formula.

La formula è lì se faccio clic su Modifica formula. E se cambio "_" in concatenato a " " la formula scompare, la colonna viene bloccata e i valori vengono modificati in datatable:


La soluzione semplice in questo caso potrebbe essere quella di eliminare prima tutte le formule dalla tabella di dati originale prima di creare la tabella di riepilogo, ma penso che le formule non debbano essere copiate (solo valori) nella tabella di riepilogo, poiché potrebbe avere un comportamento molto strano a seconda delle formule.
Modifica2:
Ora ho inviato un ticket su questo problema/funzione che ho descritto all'assistenza di JMP.
Re: eliminare colonna con refsMi chiedo se esiste una colonna formula nascosta? Se non esiste davvero alcuna colonna formula, suona come un bug e l'invio della tabella al supporto tecnico potrebbe aiutare a risolverlo.
Re: eliminare colonna con refsPotresti voler fare un passo indietro e considerare l'approccio che stai utilizzando. Invece di risolvere questo problema, potrebbe essere evitato in primo luogo. Ad esempio, perché stai utilizzando una formula nell'altra colonna di dati? Perché vuoi eliminare una colonna?
Potresti essere in grado di utilizzare altri modi per popolare una colonna di dati che non coinvolgono affatto le formule. L'unico motivo per utilizzare una formula durante lo scripting di JMP è se è necessario aggiornare la colonna di dati quando la tabella di dati cambia. Altrimenti ci sono altri modi.
Riesci a postare la tua sceneggiatura? O descrivi i passaggi della tua sceneggiatura?
Re: eliminare colonna con refspuoi fornire una tabella di dati di esempio?