Cómo usar la fórmula fila por fila para encontrar el cambio dinámico del número total de columnas.Cómo usar la fórmula fila por fila para encontrar el cambio dinámico del número total de columnas.
Tales como la configuración:
El número a es el número de posiciones iniciales de la columna que deben sumarse
El número b es el número total de columnas que deben sumarse.
dt = Open( "$SAMPLE_DATA/Diabetes.jmp" );
dt << New Column( "test", formula( As Column( 6 ) + As Column( 7 ) + As Column( 8 ) + As Column( 9 ) ) );
dt << run formulas;
Column( "test" ) << deleteFormula;
Como:
A = 6;
B = 4;
Encuentre la suma de las columnas 6, 7, 8 y 9 en la nueva columna "texto" (comenzando con la columna a, columna total b).
¡Gracias!

Re: Cómo usar la fórmula fila por fila para encontrar el cambio dinámico del número total de columnas.
a=6;b=4;
dt = Current Data Table();
dt<<NEW column=""></NEW>
Parece que va a estar en la forma de fuerza bruta de un bucle de línea por línea, ¿verdad?
Re: Cómo usar la fórmula fila por fila para encontrar el cambio dinámico del número total de columnas.Esta situación es rara. Este script construye la fórmula:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Diabetes.jmp" );
col = dt << New Column( "test" );
lo = 6;
hi = 9;
f = Expr( Add() );
For( c = lo, c <= hi, c++,
r = (dt << Get Column Reference( Eval List( { Column( dt, c ) << Get Name } ) ))[1];
Insert Into( f, r );
);
Eval(
Substitute(
Expr( col << Set Formula( fff ) ),
Expr( fff ),
Name Expr( f )
)
);
Pero no evalúa. Sin embargo, funciona si examino la vista previa en el editor de fórmulas.

De todos modos, ¿por qué usar una fórmula cuando no quieres?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Diabetes.jmp" );
col = dt << New Column( "test" );
lo = 6;
hi = 9;
sum = J( N Row( dt ), 1, 0 );
For( c = lo, c <= hi, c++,
sum += Column( dt, c ) << Get As Matrix;
);
col << Set Values( sum );
Re: Cómo usar la fórmula fila por fila para encontrar el cambio dinámico del número total de columnas.Gracias markbailey!
https://community.jmp.com/t5/Discussions/How-to-SUM-rows-with-variable-column-names/mp/9817
Al ver esta publicación, también probé este método, pero para determinar la cantidad de columnas de formato de texto.
dt = Open( "$SAMPLE_DATA/Diabetes.jmp" );
a = 4;//has 2 text format columns.
b = 4;
m = (dt << get as matrix)[0, Index( a, a + b - 1 )];
s = (V Sum( m` ))`;
dt << New Column( "test", Numeric, Continuous, Values( s ) );