계산 결과 불일치, 열 평균 등변수를 사용할 때와 문자열을 직접 사용할 때 계산 결과가 다른 이유는 무엇일까요? 변수를 사용할 경우 변수 부분에 대한 그룹화 함수가 제대로 작동하지 않는 것 같습니다. 이 문제를 어떻게 해결할 수 있을까요?
다음 공식을 사용하면
Col Mean(
:data,
:A,
:B,
:C_D == "ccccccc"
)
이것이 바로 공식입니다.
Col Mean(
:data,
:A,
:B,
Column(Eval Insert("C_^get_input_1^" == get_input_2))
)
자동화 및 스크립팅제목: 계산 결과 불일치, 열 평균 등 관련 문의여러분, 죄송합니다. 제가 깜빡하고 말씀드리지 못했네요.get_input_1그리고get_input_2각각은 이미 문자열 형태로 얻어졌다고 가정할 수 있습니다.
제목: 계산 결과 불일치, 열 평균 등 관련 문의첫 번째는 열과 문자열을 비교하는 것이고, 두 번째는 무엇을 비교하는지 확실하지 않습니다(문자열 대 문자열 비교라면 항상 1 또는 0이 될 것입니다). 적어도 값이 평가되지는 않으므로 수식에 값을 직접 평가하여 넣어야 합니다.
Eval Insert, Eval Expr, Parse 및 Substitute를 사용하여 한 표현식을 다른 표현식에 삽입합니다.
제목: 계산 결과 불일치, 열 평균 등 관련 문의첫 번째 줄의 표현식과 동일한 결과를 얻고 싶습니다. 변수를 각각 get_input_1="D"와 get_input_2="cccccc"로 지정했을 때 당연히 같은 결과가 나올 거라고 예상했지만, 실제 결과는 달랐습니다.
제목: 계산 결과 불일치, 열 평균 등 관련 문의Eval(Substitute(
Expr(Col Mean(
:data,
:A,
:B,
_input1_ == _input2_
),
Expr(_input1_) = NameExpr(AsColumn(dt, get_input_1)),
Expr(_input2_) = get_input_2
)
));
하지만 해당 예제에 새 열과 수식을 추가해야 합니다.
제목: 계산 결과 불일치, 열 평균 등 관련 문의
Column(Eval Insert("C_^get_input_1^" == get_input_2))는 Column( "C_D" == "ccccccc" )로 평가되므로 수식은 다음과 같습니다.
편집하다
Eval Insert() 함수 안에 문자열이 아닌 값을 넣으면 실제로 빈 문자열로 평가됩니다.
Col Mean(
:data,
:A,
:B,
Column( "" )
);
그게 예상대로 작동하지 않는 이유일 수 있습니다. Jarmo의 해결책이 당신이 원하는 것일 겁니다.
제목: 계산 결과 불일치, 열 평균 등 관련 문의
답변해주셔서 감사합니다. 그리고 답장이 늦어서 죄송합니다.
아래와 같이 JSL 코드를 작성했는데 오류가 발생합니다. 원인이 무엇일까요?
오류 메시지에는 "Substitute/ ### /(Expr(" 위치에서 "인수가 부족합니다"라고 표시됩니다.
Data Table( "data_table" ) << New Column( Eval Insert("Xbar_^get_input_process^_^get_input_line^"),
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
Eval(Substitute(
Expr(Col Mean(
:data,
:A,
:B,
_input1_ == _input2_
),
Expr(_input1_) = NameExpr(AsColumn(dt, Eval Insert("new_^get_input_1^"))),
Expr(_input2_) = get_input_2
)
));
)) << Run Formulas;
제목: 계산 결과 불일치, 열 평균 등 관련 문의Eval Insert, Eval Expr, Parse 및 Substitute를 사용하여 한 표현식을 다른 표현식에 삽입합니다.
아마도 이런 식일 것 같지만, 데이터나 스크립트 앞부분이 없어서 테스트해 볼 수는 없습니다.
Names Default To Here(1);
dt = Data Table("data_table");
Eval(Substitute(
Expr(Data Table("data_table") << New Column(colname,
Numeric,
"Continuous",
Formula(Col Mean(:data, :A, :B, _input1_ == _input2_)),
)),
Expr(colname), Substitute(Xbar_^get_input_process^_^get_input_line^),
Expr(_input1_) = NameExpr(AsColumn(dt, Eval Insert("new_^get_input_1^"))),
Expr(_input2_) = get_input_2
));
제목: 계산 결과 불일치, 열 평균 등 관련 문의실제 데이터를 제공할 수 없는 상황에서 실험을 진행하기는 어려웠지만, 고려해 주셔서 감사합니다.
제 데이터 테이블에 맞게 다음과 같이 수정했습니다.
Names Default To Here(1);
dt = Data Table("data_table");
Eval(Substitute(
Expr(Data Table("data_table") << New Column(colname,
Numeric,
"Continuous",
Formula(Col Mean(:data, :A, :B, _input1_ == _input2_)),
)),
Expr(colname), Eval Insert(Xbar_^get_input_process^_^get_input_line^),
Expr(_input1_) , NameExpr(AsColumn(dt, Eval Insert("new_^get_input_1^"))),
Expr(_input2_) , get_input_2
));