여러 결과 출력을 허용하는 IF 문 만들기1 또는 0 열의 값을 기준으로 데이터를 필터링하려고 합니다. 1 또는 0을 필터링할 수 있지만 1과 0 모두의 모든 열을 표시할 수도 있습니다. 나는 다양한 것을 시도했지만 범위 문제가 있거나 완전히 지정되지 않은 문제가 있습니다. 사용자는 1, 0 또는 둘 다 원하는 경우 라디오 상자에 입력할 수 있지만 둘 다 오류 없이 표시되도록 할 수는 없습니다.
(Current Data Table() << Data Filter(
Mode( Show( 1 ), Include( 1 ) ),
Inverse( 0 ),
invisible,
Add Filter(
columns(:Fine),
Where(IF(V=="Coarse", :Fine==0, V=="Fines",:Fine==1,V=="Both",:Fine >=0 ))))), //Coarse, Fines or Both are selected in a previous code that works well.
Re: 여러 결과 출력을 허용하는 IF 문을 만드세요.내 열(:Fine)은 연속적입니다. 내가 올바르게 이해한다면 :height 이 예에서 연속적이며 범위를 설정하고 있습니다. 그러나 "Where" 문에 "IF" 문을 설정하려고 합니다.
<SPAN class="token function">Current Data Table</SPAN><SPAN class="token punctuation">(</SPAN><SPAN class="token punctuation">)</SPAN> <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN><SPAN class="token messages"> Data Filter</SPAN><SPAN class="token punctuation">(</SPAN>
Location<SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">{</SPAN><SPAN class="token number">314</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token number">74</SPAN><SPAN class="token punctuation">}</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
Add Filter<SPAN class="token punctuation">(</SPAN>
columns<SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">:</SPAN>age<SPAN class="token punctuation">,</SPAN> <SPAN class="token punctuation">:</SPAN>height <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
Where<SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">:</SPAN>age <SPAN class="token operator">==</SPAN> <SPAN class="token punctuation">{</SPAN><SPAN class="token number">12</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token number">14</SPAN><SPAN class="token punctuation">}</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
Where<SPAN class="token punctuation">( If( x=="tall",:height >=72, x=="average", </SPAN> <SPAN class="token punctuation">:</SPAN>height <SPAN class="token operator">>=</SPAN> <SPAN class="token number">58</SPAN> <SPAN class="token operator">&</SPAN> <SPAN class="token punctuation">:</SPAN>height <SPAN class="token operator"><=</SPAN> <SPAN class="token number">66, x=="Short", :height <= "58"</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">, // x is selected previously in a radio box. </SPAN>
Display<SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">:</SPAN>age<SPAN class="token punctuation">,</SPAN> Size<SPAN class="token punctuation">(</SPAN> <SPAN class="token number">160</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token number">90</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN> List Display <SPAN class="token punctuation">)</SPAN>
<SPAN class="token punctuation">)</SPAN>
<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>내가 이런 식으로하면. "Where" 절이 2번 올바르게 지정되지 않았다는 오류가 발생합니다.
Re: 여러 결과 출력을 허용하는 IF 문을 만드세요.이름이 "Fine"인 열이 연속 열로 정의되어 있습니까?서수 또는 명목이면 구문이 정확하지만 연속이면 구문은 다음과 같습니다.
Current Data Table() << Data Filter(
Location( {314, 74} ),
Add Filter(
columns( :age, :height ),
Where( :age == {12, 14} ),
Where( :height >= 58 & :height <= 66 ),
Display( :age, Size( 160, 90 ), List Display )
)
);Re: 여러 결과 출력을 허용하는 IF 문을 만드세요.이 코드를 나와 공유해 주셔서 감사합니다. 나는 별도의 스크립트에서 코드를 시도했고 내 코드가 원하는 방식으로 작동하는지 확인했습니다. 그러나 그것은 나를 위해 작동하지 않습니다. 이것은 명목 세트에서만 작동합니까? 여전히 문제가 있고 누락된 범위 오류가 있습니다.
이제 코드는 다음과 같습니다.
( 현재 데이터 테이블 ( ) < < 데이터 필터 (
방법 ( 보여주다 ( 1 ) , 포함하다 ( 1 ) ) ,
역 ( 0 ) ,
보이지 않는 ,
필터 추가 (
열 ( : 괜찮은 ) ,
어디 (: 벌금 =={0,1} ) ) ));
범위가 누락되었다는 오류가 표시됩니다. 컬럼이나 변수의 범위를 설정할 수 있는 기능이 있나요?
"Columns" 요소에 모든 열을 나열했으며 필터링하려는 모든 열에 대해 별도의 "Where" 문이 있습니다.
Re: 여러 결과 출력을 허용하는 IF 문을 만드세요.다음은 Scripting Index에서 직접 가져온 예입니다.여러 열에서 선택하는 구문을 보여줍니다.선택될 모든 열이 "Columns" 요소에 나열되어야 하며 각 열에 대해 where 절을 별도로 설정해야 합니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
obj = dt << Data Filter();
obj << Add Filter( columns( :POP ) );
obj << Add Filter(
columns( :Region, :State, :City ),
Where( :Region == "S" ),
Where( :State == {"SC", "NC"} )
);