수식에서 문자열을 찾아 바꾸는 정규 표현식안녕하세요 여러분,
I try to replace one specific part As Constant( t Quantile( 1 - 0.1 / 2, in every selected column formula by Random t((.
그런데 정규식 부분에서 오류가 발생했습니다. 괄호 이스케이프 처리와 관련이 있는 것 같습니다. \!\로 시도해 봤지만 여기서도 오류가 발생했습니다...
누군가 내 아래 코드를 디버깅해 줄 수 있을까요?
// Select some columns
dt = currentdatatable();
dt << Get Selected Columns;
//'fix' each selected column formula by manipulating the formula as a string
for each( {col, c}, dt << Get Column References( dt << Get Selected Columns ),
newf = regex(
char(col << Get Formula),
"As Constant( t Quantile( 1 - 0.1 / 2, ",
"Random t((",
GLOBALREPLACE
);
//show(Parse(newf));
Eval( Eval Expr(
col << Set Formula( Expr( Parse(newf) ) )
) );
);
자동화 및 스크립팅윈도우Re: 수식에서 문자열을 찾아 바꾸는 정규 표현식Regex 대신 Substitute 또는 Substitute Into를 사용할 가능성이 높습니다.
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
new_col = dt << new column("F", Numeric, Continuous, Formula(
As Constant(t Quantile(1 - 0.1 / 2, 1, 0))
));
f_expr = new_col << Get Formula;
f_str = Char(Name Expr(f_expr));
Substitute Into(f_str, "As Constant(t Quantile(1 - 0.1 / 2, ", "Random t((",);
Substitute Into(f_str, "((", "(", "))", ")");
new_col << Set Formula(Eval(Parse(f_str)));
Re: 수식에서 문자열을 찾아 바꾸는 정규 표현식네, 정규 표현식에는 최소한 패턴의 괄호를 이스케이프해야 합니다.