JSL을 사용하여 동적 개수의 열을 선택하고 조건을 충족하는 열을 선택합니다.https://www.jmp.com/support/help/14-2/use-set-selected-to-select-columns.shtml
이와 같은 것을 다시 작성하는 가장 좋은 방법은 무엇입니까?
의도는 DT가 TRANSPOSE와 CATEGORY_TABLE의 조인이라는 것입니다.
- CATEGORY_TABLE은 Category 열이 있는 1열 테이블입니다.
- TRANSPOSE는 데이터 전치의 결과입니다.
비결은 TRANSPOSE가 항상 같은 수의 열을 갖지는 않는다는 것입니다. 혼란스럽게도 전치 함수의 출력에는 추가 열의 이름이 Row 1, Row 2 등으로 지정됩니다.
- TRANSPOSE의 처음 두 열은 항상 동일합니다.
- 열 1행은 항상 세 번째 열로 존재합니다.
- 데이터세트에 따라 열 2행 이상이 존재할 수 있습니다.
Join()이 최소한 행 1 열을 선택한 다음 마지막 열까지 더 많은 항목이 있는 경우 Select() 함수를 작성할 수 있습니까?
// This section is only build to handle two columns named Row 1 and Row 2
DT = Data Table( TRANSPOSE ) << Join(
With( Data Table( CATEGORY_TABLE ) ),
Select( :Forecast Material ),
SelectWith( :Category ),
Select( :Row 1, :Row 2 ), // sometimes there is only one row, sometimes there are more than one rows ******How to handle this?********
By Matching Columns( :Label = :Category ),
Drop multiples( 0, 0 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 )
);
Re: JSL을 사용하여 동적 행 수를 선택하고 조건을 충족하는 행을 선택합니다.감사합니다. 어떻게 작동하는지 알려주세요.
Re: JSL을 사용하여 동적 행 수를 선택하고 조건을 충족하는 행을 선택합니다.고마워요 돈. 다른 사람의 코드를 업데이트하려고 합니다. 나는 이것이 우리가 원하는 일을 하고 있다고 생각합니다. 솔루션으로 받아들이기 전에 검증할 시간이 필요합니다. 내가 당신의 반응을 보고 감사하지 않았다고 생각하길 원하지 않았습니다. 어제 이 제안을 가지고 작업하고 있었습니다. 감사해요!Re: JSL을 사용하여 동적 행 수를 선택하고 조건을 충족하는 행을 선택합니다."Select"가 포함된 인수를 제거합니다.
DT = Data Table( TRANSPOSE ) << Join(
With( Data Table( CATEGORY_TABLE ) ),
By Matching Columns( :Label = :Category ),
Drop multiples( 0, 0 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 )
);
결과에는 두 테이블의 모든 열이 포함됩니다.
Re: JSL을 사용하여 동적 행 수를 선택하고 조건을 충족하는 행을 선택합니다.이와 같은 것을 시도했지만 '잘못된 인수'에 대한 액세스 또는 평가에서 열을 찾을 수 없음 {1} 오류가 발생했습니다.
내가 상상하는 것은 Join() 내의 Select() 내의 논쟁입니다.
나는 열의 벡터를 변수에 할당하고 그 변수를 Select()의 인수로 사용할 수 있을 것이라고 생각했습니다.
// Get a list of the column names
colList = TRANSPOSE << Get Column Names();
// Starting with column 3, select
For(i=3,i<= N Cols( TRANSPOSE ), i++, COLUMN( TRANSPOSE , colList[i]) << Set Selected(1) ) ;
// Assign those selected columns to a variable
Select_cols = TRANSPOSE << Get Selected Columns();
//then feed that variable into the Select() withing Join()
<SPAN class="token comment">// 가입하다</SPAN>
DT <SPAN class="token operator">=</SPAN> <SPAN class="token function">데이터 테이블</SPAN><SPAN class="token punctuation">(</SPAN> TRANSPOSE <SPAN class="token punctuation">)</SPAN> <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN><SPAN class="token messages">가입하다</SPAN><SPAN class="token punctuation">(</SPAN>
With<SPAN class="token punctuation">(</SPAN> <SPAN class="token function">데이터 테이블</SPAN><SPAN class="token punctuation">(</SPAN> CATEGORY_TABLE <SPAN class="token punctuation">)</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
Select<SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">:</SPAN>Forecast Material <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
SelectWith<SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">:</SPAN>Category <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
Select<SPAN class="token punctuation">(</SPAN> Select_cols <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN> /// was Select<SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">:</SPAN>Row <SPAN class="token number">1</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token punctuation">:</SPAN>Row <SPAN class="token number">2</SPAN> <SPAN class="token punctuation">)</SPAN>
By Matching Columns<SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">:</SPAN>Label <SPAN class="token operator">=</SPAN> <SPAN class="token punctuation">:</SPAN>Category <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
Drop multiples<SPAN class="token punctuation">(</SPAN> <SPAN class="token number">0</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token number">0</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
Include Nonmatches<SPAN class="token punctuation">(</SPAN> <SPAN class="token number">0</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token number">0</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
Preserve main table order<SPAN class="token punctuation">(</SPAN> <SPAN class="token number">1</SPAN> <SPAN class="token punctuation">)</SPAN>
<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>