Crea una formula di colonna utilizzando un nome di colonna da un elencoCiao,
Ho un semplice script in cui voglio creare una nuova colonna in cui una formula calcola il valore assoluto di un'altra colonna.
si fa riferimento alla colonna in un elenco.
Ho provato diversi modi, ma non riesco a capire come valutare la colonna di riferimento, quindi mi ritrovo con una colonna formula vuota. Qualsiasi suggerimento sarebbe molto apprezzato.
Migliore
Sebastiano
dt=New Table( "test",
Add Rows( 4 ),
New Column( "symbol",
Character,
"Nominal",
Set Values( {"a", "b", "c", "d"} ),
Set Display Width( 55 )
),
New Column( "fold change",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [-3, -0.4, 0.4, 3] ),
Set Display Width( 68 )
)
);
l={"fold change"};
try(New Column( "absolute fold change",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Abs( l[1] )
)));
try(New Column( "absolute fold change 2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( eval(column(l[1]) )
)));
Qualità e ingegneria di processoRi: Creare una formula di colonna utilizzando un nome di colonna da un elencoNessun problema. Ho avuto lo stesso identico problema ieri e mi ci è voluto un po' per capirlo.
In realtà ho appena saputo di un'altra soluzione anche a questo.
La funzione 'As Column()' restituirà il valore della riga corrente nella colonna specificata come argomento.
Quindi quella formula avrebbe potuto ugualmente essere formattata in questo modo:
Formula(
Abs( As Colonna( l[1] ) );
);
Piuttosto pulito!Ri: Creare una formula di colonna utilizzando un nome di colonna da un elencoGrazie mille, avevo provato l'opzione che hai proposto con una grande differenza: nessuna parentesi vuota.
Migliore,
SebastianoRi: Creare una formula di colonna utilizzando un nome di colonna da un elencodt=New Table( "test",
Add Rows( 4 ),
New Column( "symbol",
Character,
"Nominal",
Set Values( {"a", "b", "c", "d"} ),
Set Display Width( 55 )
),
New Column( "fold change",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [-3, -0.4, 0.4, 3] ),
Set Display Width( 68 )
)
);
l = {"fold change"};
try(New Column( "absolute fold change",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Abs( column( l[1] )[] )
)));Poiché l'elenco contiene solo stringhe, è necessario comunicare a JMP che la stringa è un nome di colonna utilizzando la funzione Column( "" )[ ].
Le parentesi quadre vuote sono necessarie così come senza di esse, la formula farà riferimento a colonna intera anziché solo la riga appropriata.
Spero che questo abbia aiutato,
Lain