열 전환기 및 그래프 빌더안녕,
나는 함께 그룹화한 여러 개의 열을 가지고 있습니다.
그래프 빌더에는 X축 상수가 있지만 Y축에는 해당 열 그룹에서 전환할 매개변수를 선택할 수 있는 열 전환기 기능이 있어야 합니다.
먼저 JSL에게 그룹에 어떤 열이 있어야 하고 어떤 열이 첫 번째 열이 되어야 하는지 알려줍니다.
colList = dttable << get column names( continuous );
col1 = colList[1];
이것은 내가 받고 있는 코드와 오류입니다.
Graph Builder(
Size( 570, 621 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :batch_no ), Y( :col1 ) /*###*/ ),
Elements( Points( X, Y, Legend( 8 ) ) ),
Column Switcher( :col1, {:colList} )
)
첫 번째 열을 가져와서 열 전환기를 추가할 수 있도록 Y 변수에 무엇을 써야 하는지 알려주실 수 있나요?
미리 감사드립니다
기본 데이터 분석 및 모델링데이터 접근실험 설계윈도우Re: 열 전환기 및 그래프 빌더당신은 지정하고 있습니다
:col1
콜론은 JMP에게 "col1"이라는 데이터 테이블에 열이 있음을 알려줍니다(JMP 문서의 범위 지정 참조). Col1은 열이 아닌 메모리 변수입니다. 콜론을 제거하면 코드가 작동합니다.
Re: 열 전환기 및 그래프 빌더안녕하세요 짐,
도와주셔서 감사합니다.
이제 그래프는 이해되지만 열 전환기는 여전히 작동하지 않습니다.
dtrelsplit << Newscript ("graph",
Graph Builder(
Size( 570, 621 ),<BR />
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :batch_no ),
Y(col1),
),
Elements( Points( X, Y, Legend( 8 ) ) ),
Column Switcher(
col1, {colList}
),
),
Column Switcher cannot find specified column col1 in platform script</CODE></PRE>
<P>이것은 표시된 오류입니다</P>
<BR />
</LINGO-BODY>
<LINGO-SUB id="lingo-sub-724513" slang="en-US" mode="CREATE">Re: 열 전환기 및 그래프 빌더</LINGO-SUB>
<LINGO-BODY id="lingo-body-724513" slang="en-US" mode="CREATE">
<P>내 수정 사항은 다음과 같습니다.</P>
<PRE><CODE class=" language-jsl">Graph Builder(
Size( 570, 621 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( <SPAN class="lia-emoticons-autosuggestions"><SPAN class="lia-emoticons-search-term">:batch_no</SPAN></SPAN> ), Y( as column(col1) ) ),
Elements( Points( X, Y, Legend( 8 ) ) ),
Column Switcher( col1, colList )
)
;
colList는 목록이므로 두 번째 {} 세트가 필요하지 않습니다.
Re: 열 전환기 및 그래프 빌더감사해요
Re: 열 전환기 및 그래프 빌더JMP가 더 엄격해졌나요?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
colLst = { :Height, :Weight, :Age };
// doesn't work
dt << New Script( "test",
Graph Builder(
Variables( X( :Weight ), Y( :Height ) ),
Elements( Points( X, Y ) ),
Column Switcher( :Height, colLst )
)
);
// does work
dt << New Script( "test2",
Graph Builder(
Variables( X( :Weight ), Y( :Height ) ),
Elements( Points( X, Y ) ),
Column Switcher( :Height, { :Height, :Weight, :Age } )
)
);
// does work
Eval( Eval Expr( dt << New Script( "test3",
Graph Builder(
Variables( X( :Weight ), Y( :Height ) ),
Elements( Points( X, Y ) ),
Column Switcher( :Height, Expr( colLst ) )
)
)));
Re: 열 전환기 및 그래프 빌더당신이 언급한 JMP의 두 가지 버전은 무엇입니까?
Re: 열 전환기 및 그래프 빌더JMP19.
수정: colList 변수가 JMP18 이전 버전에서 제대로 작동했는지는 굳이 설명하지 않아도 알 수 있을 것 같습니다. 변수에 리스트를 전달하여 나중에 사용할 수 있도록 하는 방법에 대한 참고 자료를 여러 개 찾았는데, 의아합니다.
Re: 열 전환기 및 그래프 빌더@레셀 ,
따라서 새로 실행한 깨끗한 JMP 18 인스턴스를 사용했는데, JMP 18에서 작동한다고 암시한 사례의 예제 스크립트가 저에게는 작동하지 않았습니다.
문제는 JMP가 포함된 샘플 스크립트에 대해 제공하는 격리로 인해 발생합니다. 첫 번째 줄에는 다음과 같은 내용이 있습니다.
Names Default To Here( 1 );
이 함수는 스크립트 실행 시 고유하게 생성된 변수를 분리합니다. 따라서 collist 변수는 스크립트가 실행될 때만 해당 스크립트에 인식됩니다. 데이터 테이블에 저장된 내장 스크립트가 실행되면 이는 새로운 스크립트 환경이 되며, collist 변수가 정의되지 않습니다.
제대로 실행되는 두 버전의 코드가 실제로 작동하는 이유는 첫 번째 경우에는 값이 스크립트에 하드코딩되어 있고 두 번째 경우에는 값이
Expr( colLst )
코드가 실행되기 전에 변수 colist를 하드코딩된 값으로 확장하여 데이터 테이블에 내장된 스크립트를 스크립트의 하드코딩된 버전으로 만듭니다.
따라서 귀하의 경우 JMP 19는 버전 18에서 변경되지 않았습니다.
Re: 열 전환기 및 그래프 빌더아, 알겠습니다. 이게 "네임스페이스" 문제인가요?
또한, JMP18에서 효과가 있었다고 주장한 적이 없습니다. 여기에 제시된 해결책이 왜 그렇게 명확해 보였는데도 작동하지 않는지 궁금했습니다. 그래서 JSL의 진화와 관련이 있을 거라고 잘못 추측했는데, 사실은 그렇지 않습니다.
설명해주셔서 감사합니다!
제목: 컬럼 전환기 및 그래프 작성기 관련훌륭한 대화였어요 : )
JSL의 핵심 부품들을 돋보기로 자세히 살펴보세요...
변수() 와 Column Switcher()의 차이점이 궁금해서 질문드립니다.
Variables( ... Y( as column(col1) ) ),
Column Switcher( col1, colList )
이것도 잘 작동합니다:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
cols = dt << get column names( continuous );
col1= cols[1];
gb = dt << Graph Builder(
Size( 437, 413 ),
Graph Spacing( 4 ),
Variables( X(col1 ), ),
Elements( bar( X ), ),
Column Switcher( col1, cols )
);
이것도 마찬가지로:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
cols = dt << get column names( continuous, "String" );
col1= cols[1];
gb = dt << Graph Builder(
Size( 437, 413 ),
Graph Spacing( 4 ),
Variables( X(Column(col1) ), ),
Elements( bar( X ), ),
Column Switcher( col1, cols )
);
작동하지 않는 것:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
cols = dt << get column names( continuous, "String" );
col1= cols[1];
gb = dt << Graph Builder(
Size( 437, 413 ),
Graph Spacing( 4 ),
Variables( X(col1 ), ),
Elements( bar( X ), ),
Column Switcher( col1, cols )
);
그래서 Column Switcher()는 문자열 과 함께 사용해도 괜찮습니다.
변수() 함수 는 이름 또는 열 ( As Column() 또는 column() 함수 를 통해 생성됨)을 필요로 합니다.
Re: 열 전환기 및 그래프 빌더@호기 님의 결과는 환경이나 네임스페이스 문제가 아니라 다른 문제라는 뜻인가요?
Re: 열 전환기 및 그래프 빌더아니요, 테이블 스크립트의 문제는 @txnelson이 설명한 대로 네임스페이스 문제입니다.
문자열 대 이름 대 열은 배울 수 있는 또 다른 내용입니다.