안녕 모두,
데이터 테이블에서 데이터를 가져와 사용자가 추가 분석을 위해 선택할 수 있도록 그래픽으로 표시하는 JSL 코드를 작성하려고 합니다. 내가 얻고자 하는 것은 PCA 플랫폼의 고유값 보고서와 Fit Model Platform의 효과 요약 보고서 사이의 혼합과 같은 것입니다. 시각적 개체가 PCA 보고서와 비슷하지만 효과 요약 보고서의 기능(예: 행 선택 가능)을 원합니다.
PCA 고유값 보고서(내가 원하는 방식):

적합 모델 효과 요약 보고서(내가 원하는 기능). 이 플랫폼에서는 목록 상자()에서 행을 선택하고 "제거" 또는 "추가"를 선택할 수 있습니다. 제거하거나 추가하고 싶지는 않지만 사용자가 행을 선택할 수 있기를 원합니다(위의 출력에서).

작업 중인 데이터 테이블을 첨부했습니다. 아래 JSL 코드의 "현재 데이터 테이블()"입니다. 아래의 JSL 코드는 어느 정도 도움이 될 수 있지만 정확히 내가 원하는 것은 아닙니다.
Names Default To Here( 1 );
PC_dt = Current Data Table();
PC_n = {};
PC_eigv = {};
PC_per = {};
PC_cump = {};
For( i = 1, i <= N Rows( PC_dt ), i++,
Insert Into( PC_n, PC_dt:"Number"n[i] );
Insert Into( PC_eigv, Round( PC_dt:"Eigenvalue"n[i], 5 ) );
Insert Into( PC_per, Round( PC_dt:"Percent"n[i], 5 ) );
Insert Into( PC_cump, Round( PC_dt:"cumulative Percent"n[i], 5 ) );
);
PC_Rpt_win = New Window( "PC Results",
Outline Box( "Eigenvalues & cumulative Percent",
//List Box(
//List Box(
Table Box(
Number Col Box( "Number", Eval List( PC_n ) ),
Number Col Box( "Eigenvalue", Eval List( PC_eigv ), <<SET format=""></SET>
주석 처리된 섹션을 사용하면 코드에서 다음과 같은 출력을 얻을 수 있습니다(선택할 수 있는 행은 없습니다).

PC 및 고유값 등에 대한 목록을 생성하는 코드의 전체 pre-Outline 상자 부분이 필요한지 여부는 정말 모르겠습니다. 하지만 데이터 테이블과 함수에는 목록이 필요합니다. 필요하지 않더라도 작동합니다.
</CODE></P><P> </P><P>Table Box() 주위에 주석 처리된 List Box() 호출 중 하나 또는 둘 다를 포함하면 다음과 같은 결과가 나타납니다. 행을 선택할 수 있지만 아무 것도 표시되지 않습니다.</P><P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DiedrichSchmidt_3-1635336043749.png" style="width: 400px;"><IMG src="https://us.v-cdn.net/6038925/uploads/images/37045iA319787974999980/DiedrichSchmidt_3-1635336043749.png" role="button" title="DiedrichSchmidt_3-1635336043749.png" alt="디드리히슈미트_3-1635336043749.png" /></SPAN></P><P>내가 뭘 잘못하고 있는지 잘 모르겠고 Scripting Index에는 Table Box()와 함께 List Box() 호출을 올바르게 사용하는 방법에 대한 제한된 예가 있습니다. Fit Model 플랫폼 보고서 창에서 트리 구조를 따라해 보았지만 작동하지 않습니다.</P><P> </P><P>요약하면 내 스크립트에서 다음을 수정하고 싶습니다.</P><OL><LI>Plot Col Box를 수정하여 PC 보고서(위의 첫 번째 이미지)와 같이 누적 백분율 곡선을 갖도록 합니다. 이것은 항목 2만큼 중요하지 않습니다.</LI><LI>사용자가 목록 상자에서 행을 선택한 다음 추가 분석을 위해 다른 함수로 보낼 수 있도록 테이블 상자() 주변의 목록 상자() 호출을 수정하십시오.</LI></OL><P>어떤 제안과 도움을 주셔서 감사합니다!,</P><P>DS</P></LINGO-BODY><LINGO-LABS id="lingo-labs-430708" slang="en-US"><LINGO-LABEL>스크립팅</LINGO-LABEL></LINGO-LABS><LINGO-SUB id="lingo-sub-430729" slang="en-US">Re: List Box() 내의 Table Box()에 대한 스크립팅 도움말</LINGO-SUB><LINGO-BODY id="lingo-body-430729" slang="en-US"><P>List Box()가 특별히 필요한가요? 당신이 사용할 수있는<CODE class=""> << 선택 가능한 행 설정(); 테이블 상자에서 행을 선택할 수 있도록 한 다음 << 행 변경 설정 function(Function({this}, ); 선택 항목에 기능을 추가합니다.
스크립팅 인덱스의 예:
Names Default To Here(1);
New Window("Mountains",
tb = Table Box(
String Col Box("Mountain", {"K2", "Delphi", "Kilimanjaro", "Grand Teton"}),
Number Col Box("Elevation (meters)", {8611, 681, 5895, 4199}),
Plot Col Box("", {8611, 681, 5895, 4199})
)
);
tb << Set Selectable Rows();
tb << set row change function(Function({this}, Print(this << get selected rows)));
안녕하세요 @jthi ,
빠른 피드백에 감사드립니다. 나는 그것을 더 일찍 시도했지만 아무 일도 일어나지 않았기 때문에 다른 경로로 그것을 포기했지만 아무데도 통하지 않았습니다. 다시 가서 해봤는데 잘되네요 감사합니다! 추가된 기능이 유용합니다. 그것은 확실히 더 중요한 항목 2를 해결했습니다. 항목 1을 수정하는 방법에 대한 아이디어가 있으면 좋겠지만 필수는 아닙니다.
이것은 관련이 있지만 다른 스레드일 수 있습니다(알려주시면 다른 스레드로 다시 게시하겠습니다).
JSL을 사용하여 PCA 플랫폼의 DModX 및 T² 값을 데이터 테이블에 저장하는 방법을 알고 있습니까? 이 모든 것은 이 프로세스를 시도하고 자동화하거나 최소한 다른 몇 가지 단계를 수행하고 사용자에게 DModX 및 T² 공식을 저장하는 데 사용할 PC 수를 결정하기 위한 기본 사항을 제공하는 것입니다.
감사 해요!,
DS
안녕하세요 @jthi ,
글쎄, DModX에 대한 부분은 잊어 버리십시오. Scripting Index는 그것을하는 방법을 보여 주었고 예상대로 작동합니다. Save T Square에 대한 예가 있지만 작동하지 않습니다. 계속 할게요. 올바른 아웃라인 상자를 참조해야 한다고 생각합니다.
감사 해요!,
DS
항목 1의 경우:
이 작업을 수행하는 다른 / 더 나은 방법이 있다고 생각하지만 << Lower 및 << Upper(하위를 지정해야 함) 메시지를 찾았습니다. << Lower를 사용하면 누적 열에서 첫 번째 값을 얻은 다음 이를 Plot Col Box with Lower로 설정할 수 있습니다.
pcb << Lower(ncb << get as matrix);

코드를 사용하면 다음과 같이 보일 것입니다(참조를 추가하고 사용).
더보기...Names Default To Here( 1 );
PC_dt = Current Data Table();
PC_n = {};
PC_eigv = {};
PC_per = {};
PC_cump = {};
For( i = 1, i <= N Rows( PC_dt ), i++,
Insert Into( PC_n, PC_dt:"Number"n[i] );
Insert Into( PC_eigv, Round( PC_dt:"Eigenvalue"n[i], 5 ) );
Insert Into( PC_per, Round( PC_dt:"Percent"n[i], 5 ) );
Insert Into( PC_cump, Round( PC_dt:"cumulative Percent"n[i], 5 ) );
);
PC_Rpt_win = New Window( "PC Results",
Outline Box( "Eigenvalues & cumulative Percent",
//List Box(
//List Box(
Table Box(
Number Col Box( "Number", Eval List( PC_n ) ),
Number Col Box( "Eigenvalue", Eval List( PC_eigv ), <<SET format=""></SET>값을 얻으려면:
때때로 Make를 데이터 테이블로 사용하는 것으로 충분할 수 있습니다(플랫폼에 따라 그리고 By 변수를 사용하는 경우):

그런 다음 결과 테이블에서 테이블 스크립트를 확인합니다.


때로는 올바른 디스플레이 상자에 대한 참조를 얻는 매우 빠른 방법을 제공합니다.
안녕 @jthi ,
빠른 피드백과 도움에 다시 한 번 감사드립니다. 예, <
이제 내 유일한 문제는 T²를 저장하는 방법입니다. PCA 플랫폼에서 문제의 아웃라인 상자를 처리하려고 할 때마다 디스플레이 상자가 제대로 작동해야 하는 <
감사 해요!,
DS