Erstellen Sie eine IF-Anweisung, die mehrere Ergebnisausgaben ermöglichtIch versuche, Daten basierend auf einem Wert in einer Spalte herauszufiltern, entweder 1 oder 0. Ich kann es dazu bringen, die 1 oder die 0 herauszufiltern, aber ich möchte auch in der Lage sein, in allen Spalten sowohl 1 als auch 0 anzuzeigen. Ich habe verschiedene Dinge ausprobiert und es kam entweder zu einem Bereichsproblem oder zu einem Problem, bei dem dieser nicht vollständig spezifiziert wurde. Der Benutzer hat die Möglichkeit, in ein Optionsfeld einzugeben, ob er 1, 0 oder beide möchte, aber ich kann nicht beide ohne Fehler anzeigen lassen.
(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.
Betreff: Erstellen Sie eine IF-Anweisung, die mehrere Ergebnisausgaben ermöglichtMeine Kolumne (:Fine) ist fortlaufend. Wenn ich das richtig verstehe, ist :height in diesem Beispiel kontinuierlich und Sie legen einen Bereich fest. Ich versuche jedoch, eine „IF“-Anweisung in einer „Where“-Anweisung einzurichten.
<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>Wenn ich so etwas mache. Es kommt eine Fehlermeldung, die besagt, dass die „Where“-Klausel zweimal nicht korrekt angegeben wurde.
Betreff: Erstellen Sie eine IF-Anweisung, die mehrere Ergebnisausgaben ermöglichtIst Ihre Spalte mit dem Namen :Fine als fortlaufende Spalte definiert?Wenn es Ordinal oder Nominal ist, ist Ihre Syntax korrekt. Wenn es sich jedoch um Continuous handelt, ist die Syntax wie unten aufgeführt
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 )
)
);Betreff: Erstellen Sie eine IF-Anweisung, die mehrere Ergebnisausgaben ermöglichtVielen Dank, dass Sie diesen Code mit mir geteilt haben. Ich habe den Code in einem separaten Skript ausprobiert und festgestellt, dass er so funktioniert, wie ich es von meinem Code möchte. Allerdings funktioniert es bei mir nicht. Funktioniert das nur für nominale Sätze? Ich habe immer noch ein Problem und einen fehlenden Bereichsfehler.
Der Code sieht nun wie folgt aus:
( Aktuelle Datentabelle ( ) < < Datenfilter (
Modus ( Zeigen ( 1 ) , Enthalten ( 1 ) ) ,
Invers ( 0 ) ,
unsichtbar ,
Filter hinzufügen (
Säulen ( : Bußgeld ) ,
Wo (: Gut =={0,1} ) ) ));
Ein Fehler besagt, dass der Bereich fehlt. Gibt es eine Funktion, mit der ich den Bereich einer Spalte oder Variablen festlegen kann?
Ich habe alle meine Spalten im Element „Columns“ aufgelistet und habe separate „Where“-Anweisungen für alle meine Spalten, die ich herausfiltern möchte.
Betreff: Erstellen Sie eine IF-Anweisung, die mehrere Ergebnisausgaben ermöglichtUnten finden Sie ein Beispiel direkt aus dem Scripting Index.Es zeigt die Syntax für die Auswahl aus mehreren Spalten.Bitte beachten Sie, dass alle Spalten, die ausgewählt werden sollen, im Element „Columns“ aufgeführt sein müssen und dass die Where-Klausel für jede Spalte separat festgelegt werden muss
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"} )
);