Utilizzo dell'elenco di colonne nelle formuleHo riscontrato un "problema" durante il tentativo di utilizzare direttamente un elenco di colonne restituito dalla finestra di dialogo delle colonne (ad esempio {:sex, :age: name}). Quando provo a utilizzare quell'elenco direttamente nelle formule Col (Col Mean, Col Sum...) con byVars la formula non funzionerà correttamente. L'uso dell'elenco con, ad esempio, la formula Sum() funziona correttamente. Si tratta di un comportamento previsto e qualcuno ha modi più puliti per creare Col Sums dall'elenco di colonne rispetto agli esempi che ho di seguito?
Di seguito è riportato lo script di esempio con le formule Sum() e ColSum(). Esistono un paio di modi diversi in cui ho provato a creare le formule ColSum() ma sono riuscito a farle funzionare solo con Insert Into con espressioni ed EvalParse (che cercherò di evitare a causa dei problemi con il debug).
Esempio:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("Sum", Numeric, "Continuous", Format("Best", 12), Formula(Sum(:height, :weight)));
listOfCols = {:height, :weight}; //list works here
dt << New Column("SumList", <<FORMULA></FORMULA>
Modellazione statistica avanzataAutomazione e scriptingCombinazione e pulizia dei datiProgettazione di esperimentiIngegneria della qualità e dei processiRi: Utilizzo dell'elenco di colonne nelle formuleAnche in questo caso il JMP Discovery Summit Meet the Experts offre! Ho saltato Scripting per sale riunioni di automazione e clienti e @EvanMcCorkle avevo una soluzione molto più pulita rispetto al mio looping insert into ed eval parse; S sostituendo la List attorno a listOfCols con ColSum:
listOfCols = {:height, :age, :sex}; //won't work here
f = Substitute(listOfCols, Expr(list), Expr(ColSum));
Show(f); //f = ColSum(:height, :age, :sex);Non sono sicuro che il modo in cui funziona Col Sum() funzioni con l'elenco di colonne, ma questa soluzione è pulita e semplice.
Ri: Utilizzo dell'elenco di colonne nelle formuleCIAO @jthi ,
Non sono sicuro che ciò sia previsto o meno, ma è sicuramente correlato alle parentesi dell'elenco, {} e al numero di elementi nell'elenco. Potrei riprodurre gli stessi problemi che hai descritto.
Penso che la tua soluzione per eseguire Inserisci in sia la scelta migliore. Il Parse può diventare molto complicato e difficile. Penso che tu abbia una buona soluzione con Inserisci in ed è meglio attenersi a quella per aggirare il problema delle parentesi di elenco.
DS