Voglio usare un valore in una colonna numerica per creare un riferimento allo stesso numero di colonnaHo generato una colonna con numeri interi che ora voglio utilizzare per fare riferimento a valori in colonne con lo stesso numero. La colonna 9 contiene il numero che indica a quale colonna deve fare riferimento una formula nella colonna 10. Di seguito sono riportati diversi problemi che non funzionano.



Automazione e scriptingRe: Voglio usare un valore in una colonna numerica per creare un riferimento allo stesso numero di colonnaQuale messaggio di errore viene visualizzato quando si passa il mouse sopra il codice sottolineato in rosso?
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "Column 9",
Numeric,
Set Values( [1, 2, 3, 4, 5] )
);
New Column( "Column 10",
Expression,
Formula( Try( Column( :Column 9 ) ) )
)
nessun errore:


Se non si desidera recuperare le colonne, ma il valore memorizzato nelle colonne, utilizzare Come colonna() invece di colonna():
riferimento di colonna robusto
... oppure aggiungi un indice di riga a Column():
Colonna(col)[riga()] o Colonna(col)[]
New Column( "Column 10b",
Character,
Formula( Try( Char( Column( :Column 9 )[Row()] ) ) )
)

Oltre a ciò,
- assicurarsi che il valore calcolato corrisponda al tipo di modellazione della colonna.
Le colonne da 1 a 5 contengono numeri e caratteri. Per questo motivo ho aggiunto Char().
- La colonna(.) non funzionerà e la formula della colonna verrà terminata. Pertanto, verificare se mancano indici nella colonna 9.
Re: Voglio usare un valore in una colonna numerica per creare un riferimento allo stesso numero di colonnahogi
Grazie, ma questi mi danno solo il valore già presente nella colonna 9. Vorrei cercare il valore di una colonna diversa come elencato nella colonna 9, se ha senso?
Re: Voglio usare un valore in una colonna numerica per creare un riferimento allo stesso numero di colonnacombinando entrambi gli approcci, recuperiamo le colonne nel primo passaggio e i valori nel secondo passaggio:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "column",
Expression,
Formula( Try( Column( Row() ), . ) ),
);
New Column( "value",
Character,
Formula( Try( Char( :column[Row()][Row()] ), "" ) ),
)
why :column[Row()][Row()]?
:colonna è la colonna n. 9,
:colonna[riga()] è la voce nella riga specifica di questa colonna , ad esempio Colonna ("sesso")
e :colonna[riga()][riga()] è la voce nella riga specifica di, ad esempio, Colonna ("sesso")

Re: Voglio usare un valore in una colonna numerica per creare un riferimento allo stesso numero di colonnahogi
Ottima aggiunta! Nessuna buona azione e tutto il resto.............
Ora devo operare in modo iterativo su ogni colonna rispetto al valore massimo memorizzato nella colonna 9. La normale addizione del valore di i non si applica naturalmente in questo caso.
clear symbols();
lim = Col Max(Column(8));
For (i=1, i<=lim, i++,
New Column( "Column 10b",
Character,
Formula( Try( Char( Column( :Column 9 )[Row()] ) ) )
));
Re: Voglio usare un valore in una colonna numerica per creare un riferimento allo stesso numero di colonna
@SpannerHead ha scritto:
In questo caso, la normale addizione del valore di i non si applica naturalmente.
Un problema molto comune:
una variabile definita all'esterno del messaggio della nuova colonna e utilizzata all'interno del messaggio della nuova colonna :
-> Gestione delle espressioni in JMP: suggerimenti e trappole
La soluzione: cercare la variabile e utilizzare il valore memorizzato:
For each ({i}, 1::5,
Eval(Eval Expr(New Column( "col_"||char(i),
Character,
Formula( Try( Char( Column( Expr(i) )[Row()] ) ) )
))));
più robusto:
For each ({i}, 1::5,
Eval(Eval Expr(New Column( "col_"||char(i),
Character,
Formula( Try( Char( Expr(Name Expr(As Column( i )) )) ) )
))));
Fin dal primo giorno in cui l'ho visto in uno dei post di @jthi , ho ammirato il nome Expr(As Column(col)) e l'ho usato ovunque potessi.
Grazie all'apprendimento tratto da https://community.jmp.com/t5/Discussions/Using-numeric-objects-in-a-column-equation/mp/903966/highlight/true#M106273 , sono davvero felice che questo approccio mi abbia aiutato a evitare molte insidie.
Come Column(col) o Colonna (col) in una formula di colonna? Troppo fragile!