많은 프로그래밍 언어에서는 목록과 행렬을 색인화할 수 있습니다. 이는 Jmp에서도 가능합니다.
list= {"A", "B", "C"};
mat=[1,2,3];
list[3]
mat[2]
Jmp 13에서는 또 다른 수준의 인덱싱이 가능해졌습니다. 데이터 테이블 첨자
요즘 사용자는 읽기 및 쓰기 액세스를 통해 데이터 테이블의 항목을 쉽게 색인화할 수 있습니다.
세 번째 종류의 인덱싱이 있습니다: 디스플레이 트리 인덱싱
특정 보고서에 대해 표시 트리를 따라 이동하여 특정 개체를 식별할 수 있습니다.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Size( 437, 413 ),
Graph Spacing( 4 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
)
Report(gb)["Graph Builder"][AxisBox(1)]
Jmp에는 인덱싱이 사용자의 일상 업무에 도움이 되는 곳이 더 많을 수도 있습니다.
표현식의 경우 트리를 따라 내려가는 것이 훨씬 더 복잡합니다.
Y 변수를 얻으려면 :무게 ~에서
myExpr=Expr(gb = dt << Graph Builder(
Size( 437, 413 ),
Graph Spacing( 4 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
));
하나는 사용해야한다
Arg(Arg(Arg(Arg(Arg(myExpr,2),2),3),2),1) // :weight
매우 연약하다 !!!!
해결 방법: 변수 표현식을 목록으로 변환하고 목록 인덱싱을 사용합니다.
myExpr=Expr(Variables( X( :height ), Y( :weight ), Overlay( :sex ) ))
Substitute(Name Expr(myExpr),Expr(Variables()),Expr(List()))["Y"];
그러나 몇 가지 단점이 있습니다.
- 단일 수준에서만 작동합니다 - 평면 계층 구조
- 첫 번째 명명된 인수만 발견되고 동일한 식별자를 가진 추가 명명된 인수는 무시됩니다.
myExpr=Expr(Variables( X( :height ), Y( :weight ),Y(:height ), Overlay( :sex ) ));
Substitute(Name Expr(myExpr),Expr(Variables()),Expr(List()))["Y"]; // returns :weight, ignores Y(:height)
- 첫 번째 인수만 반환하고, 추가 인수는 손실됩니다.
myExpr = Expr(Distribution(columns(:height, :weight)));
Substitute(Name Expr(myExpr),Expr(Distribution()),Expr(List()))["columns"];
//returns :height -> :weight gets lost
디스플레이 트리 인덱싱과 유사하게 표현식 트리를 올라갈 가능성이 있습니까?
다음과 같은 것:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
myExpr=Expr(gb = dt << Graph Builder(
Size( 437, 413 ),
Graph Spacing( 4 ),
Variables( X( :height ), Y( :weight ), Y(:height), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
));
//instead of:
Arg(Arg(Arg(Arg(Arg(myExpr,2),2),3),3),1)
<BR />// I want to use:
myExpr[2][2["Variables"]["Y"(2)][1]
//assign // send // Graph Builder // Variables