使用选定的列执行计算你好,
我正在努力为此寻找一个好的脚本解决方案。我想选择几列,然后对它们进行计算。选择的列是灵活的,有时可以是 2 列,有时可以是 10 列以上来执行此计算。
例如
| A | 乙 | C | 具有公式 sqrt(sum(A^4, B^4, C^4) 的新列 |
| 1 | 2 | 3 | ... |
| 4 | 5 | 6 | ... |
| 7 | 8 | 9 | ... |
此时,我有提取所选列的脚本。 但是一旦它们位于带有列名的列表中,我不知道如何使用上面的公式来总结该列......
dt = Current Data Table();
cols = dt << get selected columns;
非常感谢你的帮助!
回复:使用选定的列执行计算我选择使用的方法是基于 JSL 中矩阵运算符具有的非常好的功能。该声明
mat = Sqrt( Sum( mat ^ 4 ) );
下图说明了使用矩阵可以进行多么简洁的计算。
但要使用矩阵运算符,数据必须位于矩阵中。 因此,对于每一行,矩阵 Mat 首先设置为空矩阵
mat = [];
然后 For() 循环获取 << Get Selected Columns 中指定的每一列,并将给定行的该列的值添加到矩阵“Mat”作为矩阵中的新元素。它将当前行的列值“连接”到矩阵。
mat = mat || Column( cols[i] )[Row()]
回复:使用选定的列执行计算谢谢吉姆! 你的脚本一如既往地非常有帮助。为了帮助我更好地理解JSL,您能详细说明一下这行代码的作用吗?
mat = mat || Column( cols[i] )[Row()]
回复:使用选定的列执行计算这是,使用 JSL,
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "Calc",
formula(
cols = dt << get selected columns;
mat = [];
For( i = 1, i <= N Items( cols ), i++,
mat = mat || Column( cols[i] )[Row()]
);
mat = Sqrt( Sum( mat ^ 4 ) );
)
);
dt:calc << delete formula;
我将如何创建一个公式列来处理您的问题