多列之間相減
dt = current data table();
For ( i=0 , i<8, i++,
dt << new column( "RESULT",
Numeric,
"Continuous",
For (x=1, x<50, x++,
Formula(Column(3+i)[x]-Column(2+i)[x]),
));
);
我想減去多列之間的數據,我已經嘗試了上面的腳本,但它不起作用。有沒有更有效的方法來做到這一點?
預期結果:
結果 = 數據2 - 數據1
結果1 = 數據4 - 數據3
結果2 = 數據6 - 數據5
| 物品 | 數據1 | 數據2 | 數據3 | 數據4 | 數據5 | 數據6 | 數據7 | 數據8 | 數據9 | 數據10 | 數據11 | 數據12 | 數據13 | 數據14 | 數據15 | 數據16 |
| A1 | 0.51 | 0.53 | 0.48 | 0.53 | 0.49 | 0.60 | 0.56 | 0.69 | 0.62 | 0.77 | 0.55 | 0.82 | 0.58 | 0.85 | 0.61 | 0.88 |
| A2 | 0.49 | 0.51 | 0.48 | 0.53 | 0.48 | 0.60 | 0.57 | 0.70 | 0.61 | 0.78 | 0.56 | 0.83 | 0.59 | 0.86 | 0.64 | 0.90 |
| A3 | 0.50 | 0.52 | 0.46 | 0.52 | 0.49 | 0.60 | 0.56 | 0.69 | 0.62 | 0.77 | 0.54 | 0.81 | 0.58 | 0.84 | 0.62 | 0.88 |
| A4 | 0.47 | 0.50 | 0.48 | 0.53 | 0.48 | 0.60 | 0.57 | 0.70 | 0.63 | 0.78 | 0.56 | 0.83 | 0.60 | 0.86 | 0.63 | 0.89 |
| A5 | 0.49 | 0.50 | 0.51 | 0.52 | 0.59 | 0.60 | 0.68 | 0.70 | 0.74 | 0.78 | 0.80 | 0.84 | 0.82 | 0.87 | 0.85 | 0.90 |
| A6 | 0.47 | 0.50 | 0.49 | 0.54 | 0.48 | 0.61 | 0.55 | 0.70 | 0.62 | 0.78 | 0.59 | 0.85 | 0.64 | 0.89 | 0.69 | 0.94 |
| A7 | 0.48 | 0.51 | 0.48 | 0.53 | 0.48 | 0.60 | 0.58 | 0.71 | 0.65 | 0.80 | 0.60 | 0.85 | 0.63 | 0.88 | 0.65 | 0.90 |
| A8 | 0.51 | 0.53 | 0.48 | 0.53 | 0.49 | 0.60 | 0.56 | 0.69 | 0.62 | 0.78 | 0.54 | 0.82 | 0.58 | 0.85 | 0.63 | 0.89 |
| A9 | 0.50 | 0.52 | 0.48 | 0.53 | 0.48 | 0.59 | 0.49 | 0.69 | 0.61 | 0.77 | 0.55 | 0.82 | 0.60 | 0.86 | 0.63 | 0.89 |
| A10 | 0.51 | 0.53 | 0.49 | 0.54 | 0.49 | 0.60 | 0.54 | 0.69 | 0.61 | 0.77 | 0.54 | 0.82 | 0.57 | 0.85 | 0.62 | 0.89 |
| A11 | 0.52 | 0.53 | 0.52 | 0.53 | 0.59 | 0.60 | 0.68 | 0.70 | 0.74 | 0.78 | 0.79 | 0.83 | 0.81 | 0.86 | 0.84 | 0.90 |
| A12 | 0.51 | 0.52 | 0.53 | 0.54 | 0.61 | 0.62 | 0.68 | 0.70 | 0.76 | 0.79 | 0.80 | 0.84 | 0.83 | 0.88 | 0.86 | 0.92 |
| A13 | 0.48 | 0.51 | 0.48 | 0.53 | 0.48 | 0.60 | 0.57 | 0.70 | 0.64 | 0.79 | 0.56 | 0.83 | 0.59 | 0.86 | 0.64 | 0.90 |
| A14 | 0.47 | 0.50 | 0.47 | 0.53 | 0.49 | 0.60 | 0.57 | 0.70 | 0.63 | 0.78 | 0.56 | 0.83 | 0.59 | 0.86 | 0.63 | 0.90 |
| A15 | 0.47 | 0.50 | 0.47 | 0.52 | 0.47 | 0.59 | 0.56 | 0.69 | 0.63 | 0.78 | 0.56 | 0.83 | 0.59 | 0.86 | 0.64 | 0.90 |
| A16 | 0.51 | 0.53 | 0.48 | 0.53 | 0.48 | 0.60 | 0.57 | 0.70 | 0.62 | 0.77 | 0.54 | 0.82 | 0.58 | 0.85 | 0.62 | 0.89 |
| A17 | 0.48 | 0.51 | 0.46 | 0.51 | 0.47 | 0.59 | 0.56 | 0.69 | 0.62 | 0.77 | 0.55 | 0.82 | 0.60 | 0.86 | 0.63 | 0.89 |
| A18 | 0.48 | 0.51 | 0.47 | 0.52 | 0.48 | 0.60 | 0.56 | 0.70 | 0.61 | 0.77 | 0.56 | 0.83 | 0.61 | 0.87 | 0.64 | 0.90 |
| A19 | 0.52 | 0.54 | 0.49 | 0.54 | 0.49 | 0.60 | 0.57 | 0.70 | 0.63 | 0.78 | 0.56 | 0.83 | 0.60 | 0.86 | 0.64 | 0.90 |
| A20 | 0.51 | 0.52 | 0.52 | 0.53 | 0.58 | 0.60 | 0.67 | 0.70 | 0.75 | 0.79 | 0.80 | 0.84 | 0.83 | 0.88 | 0.86 | 0.91 |
| A21 | 0.53 | 0.53 | 0.53 | 0.54 | 0.60 | 0.61 | 0.69 | 0.71 | 0.75 | 0.79 | 0.80 | 0.84 | 0.82 | 0.87 | 0.85 | 0.90 |
| A22 | 0.53 | 0.53 | 0.53 | 0.54 | 0.60 | 0.61 | 0.68 | 0.70 | 0.75 | 0.79 | 0.80 | 0.84 | 0.82 | 0.87 | 0.85 | 0.91 |
| A23 | 0.48 | 0.51 | 0.48 | 0.53 | 0.50 | 0.61 | 0.56 | 0.69 | 0.62 | 0.77 | 0.53 | 0.82 | 0.59 | 0.86 | 0.62 | 0.89 |
| A24 | 0.48 | 0.51 | 0.47 | 0.53 | 0.48 | 0.60 | 0.59 | 0.72 | 0.65 | 0.80 | 0.60 | 0.85 | 0.63 | 0.88 | 0.64 | 0.90 |
| A25 | 0.48 | 0.51 | 0.47 | 0.52 | 0.48 | 0.60 | 0.57 | 0.70 | 0.62 | 0.77 | 0.54 | 0.82 | 0.59 | 0.86 | 0.62 | 0.89 |
| A26 | 0.49 | 0.51 | 0.47 | 0.52 | 0.49 | 0.60 | 0.57 | 0.70 | 0.64 | 0.79 | 0.57 | 0.84 | 0.59 | 0.86 | 0.64 | 0.90 |
| A27 | 0.51 | 0.52 | 0.52 | 0.53 | 0.59 | 0.60 | 0.68 | 0.70 | 0.74 | 0.78 | 0.79 | 0.83 | 0.82 | 0.86 | 0.85 | 0.89 |
| A28 | 0.51 | 0.52 | 0.52 | 0.53 | 0.59 | 0.60 | 0.68 | 0.70 | 0.74 | 0.78 | 0.79 | 0.83 | 0.81 | 0.86 | 0.85 | 0.90 |
| A29 | 0.52 | 0.54 | 0.49 | 0.54 | 0.51 | 0.61 | 0.58 | 0.71 | 0.65 | 0.80 | 0.58 | 0.84 | 0.63 | 0.88 | 0.68 | 0.93 |
| A30 | 0.48 | 0.51 | 0.47 | 0.52 | 0.39 | 0.59 | 0.57 | 0.70 | 0.64 | 0.79 | 0.58 | 0.84 | 0.60 | 0.86 | 0.63 | 0.89 |
| A31 | 0.49 | 0.52 | 0.46 | 0.52 | 0.48 | 0.60 | 0.57 | 0.70 | 0.63 | 0.78 | 0.57 | 0.83 | 0.61 | 0.87 | 0.64 | 0.90 |
| A32 | 0.51 | 0.53 | 0.48 | 0.53 | 0.50 | 0.61 | 0.57 | 0.70 | 0.63 | 0.78 | 0.56 | 0.83 | 0.60 | 0.86 | 0.63 | 0.89 |
| A33 | 0.50 | 0.52 | 0.48 | 0.53 | 0.50 | 0.61 | 0.57 | 0.70 | 0.63 | 0.78 | 0.56 | 0.83 | 0.60 | 0.87 | 0.65 | 0.91 |
| A34 | 0.48 | 0.51 | 0.48 | 0.53 | 0.49 | 0.60 | 0.58 | 0.71 | 0.64 | 0.79 | 0.56 | 0.84 | 0.59 | 0.86 | 0.62 | 0.89 |
| A35 | 0.47 | 0.50 | 0.47 | 0.52 | 0.47 | 0.59 | 0.55 | 0.69 | 0.61 | 0.77 | 0.55 | 0.82 | 0.60 | 0.86 | 0.65 | 0.90 |
| A36 | 0.49 | 0.52 | 0.47 | 0.53 | 0.48 | 0.59 | 0.56 | 0.69 | 0.61 | 0.77 | 0.55 | 0.82 | 0.60 | 0.86 | 0.63 | 0.89 |
| A37 | 0.48 | 0.51 | 0.48 | 0.53 | 0.48 | 0.60 | 0.58 | 0.71 | 0.64 | 0.79 | 0.57 | 0.84 | 0.61 | 0.87 | 0.65 | 0.91 |
| A38 | 0.50 | 0.52 | 0.48 | 0.53 | 0.48 | 0.60 | 0.57 | 0.70 | 0.63 | 0.78 | 0.59 | 0.85 | 0.61 | 0.88 | 0.65 | 0.91 |
| A39 | 0.53 | 0.53 | 0.52 | 0.53 | 0.59 | 0.60 | 0.68 | 0.70 | 0.74 | 0.78 | 0.79 | 0.83 | 0.83 | 0.87 | 0.85 | 0.90 |
| A40 | 0.53 | 0.53 | 0.53 | 0.54 | 0.60 | 0.61 | 0.68 | 0.70 | 0.75 | 0.79 | 0.80 | 0.84 | 0.83 | 0.87 | 0.85 | 0.91 |
| A41 | 0.51 | 0.53 | 0.48 | 0.53 | 0.49 | 0.60 | 0.54 | 0.69 | 0.61 | 0.77 | 0.55 | 0.82 | 0.60 | 0.86 | 0.64 | 0.90 |
| A42 | 0.59 | 0.50 | 0.47 | 0.52 | 0.49 | 0.60 | 0.57 | 0.70 | 0.64 | 0.79 | 0.56 | 0.83 | 0.61 | 0.87 | 0.64 | 0.90 |
| A43 | 0.51 | 0.52 | 0.52 | 0.53 | 0.59 | 0.60 | 0.68 | 0.70 | 0.74 | 0.78 | 0.79 | 0.83 | 0.82 | 0.86 | 0.85 | 0.90 |
| A44 | 0.51 | 0.52 | 0.52 | 0.53 | 0.59 | 0.60 | 0.68 | 0.70 | 0.74 | 0.78 | 0.79 | 0.83 | 0.81 | 0.85 | 0.84 | 0.89 |
| A45 | 0.51 | 0.52 | 0.53 | 0.54 | 0.59 | 0.60 | 0.69 | 0.71 | 0.76 | 0.80 | 0.81 | 0.85 | 0.83 | 0.88 | 0.86 | 0.92 |
| A46 | 0.49 | 0.51 | 0.48 | 0.53 | 0.48 | 0.60 | 0.57 | 0.70 | 0.62 | 0.78 | 0.56 | 0.83 | 0.61 | 0.87 | 0.66 | 0.91 |
| A47 | 0.49 | 0.52 | 0.48 | 0.53 | 0.47 | 0.59 | 0.54 | 0.69 | 0.61 | 0.76 | 0.52 | 0.81 | 0.56 | 0.84 | 0.61 | 0.88 |
| A48 | 0.47 | 0.50 | 0.47 | 0.52 | 0.47 | 0.59 | 0.57 | 0.70 | 0.63 | 0.78 | 0.56 | 0.83 | 0.59 | 0.86 | 0.63 | 0.90 |
| A49 | 0.50 | 0.51 | 0.52 | 0.53 | 0.59 | 0.60 | 0.68 | 0.70 | 0.74 | 0.78 | 0.79 | 0.83 | 0.82 | 0.87 | 0.85 | 0.90 |
自動化和腳本編寫基礎資料分析與建模回覆:多列之間相減Hi @kuanaunwei ,
對我來說,學習正確腳本的有效方法是使用「工作流程」(我正在使用 JMP 17)。
以下是我的做法;
我使用按鈕單擊手動獲取結果 - 然後檢查“工作流程”中的程式碼。將其添加到我的腳本中

從上面的 JSL 腳本中,我不確定您是否只想有一個簡單的公式列或帶有條件(IF/Else)的公式列?
回覆:多列之間相減這可能會給出一些額外的想法
Names Default To Here(1);
dt = Open("$DOWNLOADS/724991.jmp");
cont_cols = dt << Get Column Names(Continuous, "String");
first_cols = cont_cols[2::N Items(cont_cols)::2];
second_cols = cont_cols[1::N Items(cont_cols)::2];
If(N Items(first_cols) != N Items(second_cols),
Throw("column mismatch");
);
For Each({{col1, col2}}, Across(first_cols, second_cols),
Eval(EvalExpr(
new_col = dt << New Column("Result", Numeric, Continuous, Formula(
Expr(Name Expr(AsColumn(dt, col1))) - Expr(Name Expr(AsColumn(dt, col2)))
));
));
dt << Run Formulas;
new_col << Suppress Eval(1);
);
如果您只關心結果,其他選擇是堆疊數據,將結果計算到堆疊表中,將其拆分(可能需要添加新列以正確命名結果列)並將其連接回來



然後 JMP 能夠為您創建某種腳本

回覆:多列之間相減列名會不同,資料的大小也會不同。因此,工作流程可能不是我的案例的最佳解決方案。感謝您的推薦:)
回覆:多列之間相減抱歉回覆晚了,由於某些原因我無法登入我的 JMP 帳戶。另外,感謝腳本方面給予的想法。這有幫助