如何使用公式逐行查找总列数的动态变化。如何使用公式逐行查找总列数的动态变化。
比如设置:
数字a是需要求和的起始列位置的数量
数字 b 是需要求和的总列数
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;
例如:
一 = 6;
B = 4;
在新的“文本”列中找到第 6、7、8 和 9 列的总和(从 a 列开始,总计 b 列)。
谢谢!

Re: 如何使用公式逐行查找总列数的动态变化。感谢马克贝利!
https://community.jmp.com/t5/Discussions/How-to-SUM-rows-with-variable-column-names/mp/9817
看到这个帖子,我也试过这个方法,但是要确定文本格式的列数。
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 ) );
Re: 如何使用公式逐行查找总列数的动态变化。这种情况很奇怪。 此脚本构建公式:
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 )
)
);
但它不评价。 然而,如果我在公式编辑器中检查预览,它就会起作用。

不管怎样,当你不想的时候为什么要使用公式呢?
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: 如何使用公式逐行查找总列数的动态变化。
a=6;b=4;
dt = Current Data Table();
dt<<NEW column=""></NEW>
看起来它将采用逐行循环的蛮力形式,对吗?