使用選定的列執行計算你好,
我正在努力為此尋找一個好的腳本解決方案。我想選擇幾列,然後對它們執行計算。選擇的列是靈活的,有時可以是 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;
我將如何建立一個公式列來處理您的問題