여러 열 사이에서 빼기
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 |
자동화 및 스크립팅기본 데이터 분석 및 모델링Re: 여러 열 사이에서 빼기안녕하세요 @kuanaunwei 님 ,
나에게 있어서 올바른 스크립트를 배우는 효과적인 방법은 "Workflow"를 사용하는 것입니다(저는 JMP 17을 사용하고 있습니다).
아래는 내가 할 방법입니다.
버튼 클릭을 사용하여 수동으로 결과를 얻은 다음 "Workflow"에서 코드를 확인합니다. 내 스크립트에 추가하세요

위의 JSL 스크립트에서 간단한 수식 열만 원하는지 아니면 조건(IF/Else)이 있는 수식 열을 원하는지 잘 모르겠습니다.
Re: 여러 열 사이에서 빼기이것은 추가적인 아이디어를 줄 수도 있습니다
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는 일종의 스크립트를 생성할 수 있습니다.

Re: 여러 열 사이의 빼기열 이름이 다를 것이고, 데이터 크기도 다를 것입니다. 그래서 워크플로는 제 경우에 가장 좋은 해결책이 아닐 수도 있습니다. 추천해 주셔서 감사합니다.:)
Re: 여러 열 사이의 빼기늦은 답변에 대해 죄송합니다. 어떤 이유에서인지 JMP 계정에 로그인할 수 없었습니다. 또한 스크립팅 측면에서 주신 아이디어에 감사드립니다. 도움이 되었습니다.