열 수식에 도움이 필요합니다안녕,
이 루프를 동등한 열 수식으로 변환하고 싶습니다.
Names Default To Here( 1 );
dt = Current Data Table();
// Assuming Column B is column 2
testColumn = Column( dt, 1 );
llCol = dt << New Column( "LL Limit_7.5", Numeric );
ulCol = dt << New Column( "UL Limit_7.5", Numeric );
// Loop through each row starting from row 20
For( i = 20, i <= N Rows( dt ), i++,
data = testColumn[1 :: i]; // Get values from row 20 to the current row
q1 = Quantile( 0.25, data ); // 1st Quartile
q3 = Quantile( 0.75, data ); // 3rd Quartile
// Factor value is 6
factorValue = 7.5;
// Calculate ll and ul
llx = q1 - (q3 - q1) * (factorValue - 0.675) / 1.35;
ulx = q3 + (q3 - q1) * (factorValue - 0.675) / 1.35;
// Set the calculated values in the new columns
llCol[i] = llx;
ulCol[i] = ulx;
);
시도해 보았지만 정확하지 않은 것 같습니다. 조언이 있나요?
newColExpr = Expr(
llCol << Set Formula(
If( Row() >= 20,
Col Quantile( 0.25, Expr( TestColumn( 1, Row() ) ) ) - (Col Quantile( 0.75, Expr( TestColumn( 1, Row() ) ) )
-Col Quantile( 0.25, Expr( TestColumn( 1, Row() ) ) )) * (Expr( factorValue ) - 0.675) / 1.35,
.
)
);
ulCol << Set Formula(
If( Row() >= 20,
Col Quantile( 0.75, Expr( TestColumn( 1, Row() ) ) ) + (Col Quantile( 0.75, Expr( TestColumn( 1, Row() ) ) )
-Col Quantile( 0.25, Expr( TestColumn( 1, Row() ) ) )) * (Expr( factorValue ) - 0.675) / 1.35,
.
)
);
);
Eval( Eval Expr( newColExpr ) );
자동화 및 스크립팅Re: 열 수식에 대한 도움이 필요합니다무엇을 하시고 싶은지 설명해 주시겠습니까?
Re: 열 수식에 대한 도움이 필요합니다PAT 한도 계산
Re: 열 수식에 대한 도움이 필요합니다이런 식으로 할 수는 있지만 이것이 최선의 방법인지는 확실하지 않습니다.
Names Default To Here(1);
dt = Open("$DOWNLOADS/data_table.jmp");
dt << New Column("Low", Numeric, Continuous, Formula(
As Constant(
factorValue = 7.5;
);
If(Row() < 20,
.
,
m = :Data[1::Row()];
q1 = Quantile(0.25, m);
q3 = Quantile(0.75, m);
q1 - (q3 - q1) * (factorValue - 0.675) / 1.35;
);
));
dt << New Column("High", Numeric, Continuous, Formula(
As Constant(
factorValue = 7.5;
);
If(Row() < 20,
.
,
m = :Data[1::Row()];
q1 = Quantile(0.25, m);
q3 = Quantile(0.75, m);
q3 + (q3 - q1) * (factorValue - 0.675) / 1.35;
);
));
Re: 열 수식에 대한 도움이 필요합니다
흥미로운 점은, Col Quantiles의 경우 먼저 열이 나오고 그 다음에 Quantile이 나온다는 것입니다.
그 외에도 Col Quantile은 모든 행을 가져옵니다. 1::currentRow 행은 가져오지 않습니다.
-> 상수 값이 생성됩니다.

newColExpr = Expr(
new column("llCol" ,Formula(
If( Row() >= 20,
Col Quantile( 0.25, Expr( TestColumn( 1, Row() ) ) ) - (Col Quantile( 0.75, Expr( TestColumn( 1, Row() ) ) )
-Col Quantile( 0.25, Expr( TestColumn( 1, Row() ) ) )) * (Expr( factorValue ) - 0.675) / 1.35,
.
)
));
new column("ulCol" , Formula(
If( Row() >= 20,
Col Quantile( 0.75, Expr( TestColumn( 1, Row() ) ) ) + (Col Quantile( 0.75, Expr( TestColumn( 1, Row() ) ) )
-Col Quantile( 0.25, Expr( TestColumn( 1, Row() ) ) )) * (Expr( factorValue ) - 0.675) / 1.35,
.
)
));
);
Eval(Eval Expr( newColExpr )) ;