Dispatch와 같은 함수가 문자열 변수나 표현식을 허용하도록 허용합니다.일부 함수는 인용된 텍스트 인수만 허용하는데, 이는 스크립트를 사용하여 많은 수의 플롯이나 표를 생성할 때 불편할 수 있습니다.
다음과 같은 것이 작동하면 좋을 것 같습니다.
// k is some procedurally generated string variable
dt << Variability Chart(
Y( :ycolumn),
X( :xcolumn),
SendToReport(
Dispatch({k}, "2", ScaleBox,
{Min( 300 ), Max( 470 ), Inc( 10 ), Minor Ticks( 1 )}
))));
대신, 다음과 같은 복잡한 코드를 사용해야 합니다.
Eval(Eval Expr(dt << Variability Chart(
Y( :ycolumn),
X( :xcolumn),
SendToReport(
Dispatch({Expr(k)}, "2", ScaleBox,
{Min( 300 ), Max( 470 ), Inc( 10 ), Minor Ticks( 1 )}
))))));
내가 알고 있는 이 문제가 있는 함수 - Dispatch, As Column, :Name
자동화 및 스크립팅Re : Dispatch와 같은 함수가 문자열 변수 또는 표현식을 허용하도록 허용입력 해 주셔서 감사합니다. 네, New Column에 대해 맞습니다. 명확성을 위해 원본 게시물을 편집했습니다.
Re : Dispatch, Formula, As Column 등과 같은 기능을 허용합니다. 문자열 변수를 받거나 표현하려면디스패치에 대해 투표하겠습니다. 그러나 귀하의 주장 중 일부는 사실이 아닙니다. 새 열에는 Expr이 필요하지 않습니다.
현재 As Column () 함수는 Name 열만 인수로 사용합니다. Col << get name이 문자열을 반환하더라도 객체 이름이 아니라는 것을 이해합니다.
이전 버전의 JMP에는 As Column ()이 없습니다. Column (txt)는 Col Mean ()과 같은 열 수식 인 경우 수식에 사용할 수 있으며 사용할 수 있습니다. 그러나 대부분의 열 수식은 행 값을 참조하기 위해 행별로 실행되므로 수식에는 Column (txt) [] 또는 Column (#) [] 구문이 필요합니다. 벡터 값을 참조하기 위해 AsColumn ()이 생성되었다고 생각합니다.
나는 끔찍한 타이피스트이기 때문에 Column (txt) []의 오른쪽에 왼쪽, 오른쪽 대괄호 구문을 사용하고 싶습니다. "As"와 동일한 2 자입니다! 위시리스트 항목을 취소하거나 논쟁하는 것이 아니라 지금 간단한 대안을 제공하기 위해이 글을 게시합니다.
공식 구문 인 Col Mean () 및 Col Std Dev ()에는 열 참조 만 필요합니다.
경험상 수식에서 변수를 사용하는 경우 Column () [] 또는 ref [] 또는 As Column (Column (txt)), AsColumn (ref)를 사용하십시오.
Names Default To Here( 1 );
exdt = Open( "$SAMPLE_DATA/Big Class.jmp" );
show( exdt:height[1] + :height[2] + Column( "height" )[3] ); //
txt = "weight";
cnme = column(txt); //column ref
exdt[[7,13, 15],txt] = empty();
exdt << get rows where(IsMissing(Column(txt)[]));
exdt << get rows where(IsMissing(As Column(Column(txt))));
exdt << get rows where(IsMissing(cnme)); // will throw an error
exdt << get rows where(IsMissing(cnme[])); //refers to the column values
exdt << get rows where(IsMissing(As Column(cnme))); // will throw an error
show(Col Mean(Column(txt)));
exdt << New Column("MyNewCol "||txt, Formula( ( Column(txt)[] - Col Mean(Column(txt)) )/ Col Std Dev(Column(txt)) ) );