Créer une instruction IF qui permet plusieurs sorties de résultatsJ'essaie de filtrer les données en fonction d'une valeur dans une colonne soit un 1 ou un 0. Je peux lui faire filtrer le 1 ou le 0, mais j'aimerais aussi pouvoir afficher toutes les colonnes 1 et 0. J'ai essayé différentes choses et soit ils ont rencontré un problème de portée, soit un problème qui n'était pas complètement spécifié. L'utilisateur a la possibilité de saisir dans une boîte radio s'il veut 1, 0 ou les deux, mais je n'arrive pas à faire apparaître les deux sans erreur.
(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 : Créer une instruction IF qui permet plusieurs sorties de résultatsMa chronique (:Fine) est continue. Si je comprends bien : la hauteur dans cet exemple est continue et vous définissez une plage. Cependant, j'essaie de configurer une instruction "IF" dans une instruction "Où".
<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>Si je fais quelque chose comme ça. Il apparaît une erreur indiquant que la clause "Où" n'a pas été correctement spécifiée 2 fois.
Re : Créer une instruction IF qui permet plusieurs sorties de résultatsVotre colonne nommée :Fine est-elle définie comme une colonne continue ?S'il s'agit d'un Ordinal ou d'un Nominal, votre syntaxe est correcte. Cependant, si elle est Continue, la syntaxe est celle répertoriée ci-dessous.
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 : Créer une instruction IF qui permet plusieurs sorties de résultatsMerci d'avoir partagé ce code avec moi. J'ai essayé le code dans un script séparé et j'ai constaté qu'il fonctionne comme je le souhaite. Cependant, cela ne fonctionne pas pour moi, cela ne fonctionne-t-il que pour les ensembles nominaux ? J'ai toujours un problème et une erreur de plage manquante.
Le code ressemble maintenant à ce qui suit :
( Tableau de données actuel ( ) < < Filtre de données (
Mode ( Montrer ( 1 ) , Inclure ( 1 ) ) ,
Inverse ( 0 ) ,
invisible ,
Ajouter un filtre (
Colonnes ( : Bien ) ,
Où ( : Très bien =={0,1} ) ) ));
une erreur indique que la plage est manquante. Existe-t-il une fonction permettant de définir la plage d'une colonne ou d'une variable ?
J'ai répertorié toutes mes colonnes dans l'élément "Colonnes" et j'ai des instructions "Où" séparées pour toutes mes colonnes que je souhaite filtrer.
Re : Créer une instruction IF qui permet plusieurs sorties de résultatsVous trouverez ci-dessous un exemple tiré directement de l'index des scripts.Il montre la syntaxe de sélection parmi plusieurs colonnes.Veuillez noter que toutes les colonnes qui doivent être sélectionnées doivent être répertoriées dans l'élément "Colonnes" et que la clause Where doit être définie séparément pour chaque colonne.
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"} )
);