È possibile creare un array associativo come variabile di tabella e quindi utilizzare i valori memorizzati in una formula di colonna ?
Vorrei modificare diverse variabili correlate nell'ambito di un'analisi in corso. Queste variabili verranno poi utilizzate come una funzione di corrispondenza in una formula di colonna.
Per esempio:
- Crea la variabile di tabella conta e imposta il valore su ["a" => 10, "b" => 3, "c" => 1] .
- conta viene quindi referenziato da una formula di colonna, come :conteggi[:col] . Dove :col è una colonna Carattere con valori "a", "b" o "c".
È possibile? Sto usando JMP 18.2.1.
Penso che questo faccia quello che hai chiesto:
New Table( "Untitled",
Add Rows( 3 ),
New Table Variable( "abc", "[\!"a\!"=>1, \!"b\!"=>2, \!"c\!"=>4]" ),
New Column( "Column 1",
Numeric,
"Nominal",
Format( "Best", 9 ),
Formula(
c_abc = As Constant( Eval( Parse( :abc ) ) );
c_abc["c"];
),
Set Selected
)
)
Si noti che la variabile table è solo testo, quindi viene analizzata e valutata. La funzione AsConstant fa in modo che venga analizzata/valutata una sola volta per l'intera valutazione della colonna, quindi non sarà troppo inefficiente.
In alternativa, potresti avere una variabile di tabella separata per ogni elemento dell'array associativo. Potrebbe essere più facile da modificare, ma non creerebbe uno spazio dei nomi isolato come l'array associativo.
Un'altra alternativa è quella di utilizzare proprietà di colonna personalizzate se i nomi saranno nomi di colonna. Potrebbero essere più difficili da trovare e modificare. A differenza della variabile di tabella solo testo, contengono anche espressioni:
dt=New Table( "Untitled",
New Column( "Column 1",
Set Property( "xxxxx", ["a"=>42,"adfasdfasdf"=>77] )
)
);
(dt:column1<
<GETPROPERTY></GETPROPERTY>
<BR />
Craige ha fornito delle buone opzioni su come farlo. Ecco un elemento della lista dei desideri, sperando in tipi di dati più complessi per le variabili di tabella. Usiamo tipi di dati più complessi per le variabili di tabella, oltre a testo e numeri.
Grazie @Craige_Hales , la tua soluzione funziona alla grande.
Grazie @jthi , ho votato a favore di questo suggerimento.