Cree una fórmula de columna usando un nombre de columna de una listaHola,
Tengo un script simple en el que quiero crear una nueva columna en la que una fórmula calcule el valor absoluto de otra columna.
se hace referencia a la columna en una lista.
Probé algunas formas diferentes, pero no puedo averiguar cómo evaluar la columna a la que se hace referencia, así que termino con una columna de fórmula vacía. Cualquier sugerencia sería muy apreciada.
Mejor
Sebastián
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]) )
)));
secuencias de comandosRe: Crear una fórmula de columna usando un nombre de columna de una listaNo hay problema. Ayer tuve exactamente el mismo problema y me tomó un tiempo resolverlo.
De hecho, acabo de enterarme de otra solución para esto también.
La función 'As Column()' devolverá el valor de la fila actual en la columna especificada como argumento.
Entonces esa fórmula podría haber sido formateada igualmente así:
Fórmula(
Abs( Como columna( l[1] ) );
);
¡Con buena pinta!Re: Crear una fórmula de columna usando un nombre de columna de una listaMuchas gracias, probé la opción que me propusiste con una gran diferencia: sin corchetes vacíos.
Mejor,
SebastiánRe: Crear una fórmula de columna usando un nombre de columna de una listadt=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] )[] )
)));Dado que su lista contiene solo cadenas, debe decirle a JMP que la cadena es un nombre de columna mediante la función Column( "" )[ ].
Los corchetes en blanco son necesarios y sin ellos, la fórmula hará referencia al toda la columna en lugar de solo la fila apropiada.
Espero que esto haya ayudado,
lain