Cree una declaración IF que permita múltiples salidas de resultadosEstoy tratando de filtrar datos en función de un valor en una columna, ya sea un 1 o un 0. Puedo hacer que filtre el 1 o el 0, pero también me gustaría poder mostrar todas las columnas, tanto el 1 como el 0. He intentado varias cosas y surgen con un problema de rango o con un problema que no se especifica por completo. El usuario tiene la capacidad de ingresar en un cuadro de radio si quiere 1, 0 o ambos, pero no puedo hacer que aparezcan ambos sin un error.
(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: Crear una instrucción IF que permita múltiples salidas de resultadosMi columna (:Bien) es continua. Si entiendo correctamente: la altura en este ejemplo es continua y está configurando un rango. Sin embargo, estoy tratando de configurar una declaración "SI" en una declaración "Dónde".
<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 hago algo como esto. Aparece un error que dice que la cláusula "Dónde" no se ha especificado correctamente 2 veces.
Re: Crear una instrucción IF que permita múltiples salidas de resultados¿Su columna se llama: Fine definida como una columna continua?Si es ordinal o nominal, su sintaxis es correcta; sin embargo, si es continuo, la sintaxis es la que se indica a continuación.
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: Crear una instrucción IF que permita múltiples salidas de resultadosGracias por compartir este código conmigo. Probé el código en un script separado y vi que funciona de la forma en que me gustaría que funcionara mi código. Sin embargo, no funciona para mí, ¿esto solo funciona para conjuntos nominales? Todavía tengo un problema y falta un error de rango.
El código ahora se parece a lo siguiente:
( Tabla de datos actual ( ) < < Filtro de datos (
Modo ( Espectáculo ( 1 ) , Incluir ( 1 ) ) ,
Inverso ( 0 ) ,
invisible ,
Añadir filtro (
columnas ( : Bien ) ,
Dónde (: Bien =={0,1} ) ) ));
un error dice que falta el rango. ¿Hay alguna función en la que pueda establecer el rango de una columna o variable?
He enumerado todas mis columnas en el elemento "Columnas" y tengo declaraciones "Dónde" separadas para todas mis columnas que quiero filtrar.
Re: Crear una instrucción IF que permita múltiples salidas de resultadosA continuación se muestra un ejemplo tomado directamente del índice de secuencias de comandos.Muestra la sintaxis para seleccionar entre varias columnas.Tenga en cuenta que todas las columnas que deben seleccionarse deben enumerarse en el elemento "Columnas", y que la cláusula where debe establecerse por separado para cada columna.
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"} )
);