Comparación de múltiples columnas JSL con un número fijo usando for loop, y genera una nueva columna para la salidaHola expertos de JSL, soy un principiante de JSL, quiero realizar una comparación de varias columnas, el nombre de la columna es Col1, Col2, Col3, etc. Estoy usando un bucle For para esta comparación (ver más abajo para scripts completos), y si cae en la fórmula (ver más abajo), generará 0 o 1. 1. Lo que sé es que si coloco :Col1 en el script :Col1, el script funciona bien como se muestra a continuación. 2. Lo que no sé es que si reemplazo :Col1 en Column( dt, i ), el script no funciona. También intenté usar, :Name, :"Name", pero nada funciona para reemplazar :Col1. ¿Alguien sabe cómo hacer la comparación de varias columnas? Ejemplo de las partes cambiadas: Esto funciona bien: Nueva columna (Nombre, Carácter, "Nominal", Fórmula (Si (1>: Col1> 0, 0,1)) Esto no funciona: Nueva columna (Nombre, Carácter, "Nominal", Formula(If( 1 > :Column( dt, i ) >0, 0,1)) Ejemplo de scripts completos: dt1 = table1; dt = table2; For( i = 1, i < N Col( dt ) + 1, i++, Nombre = Columna( dt, i ) << obtener nombre; If( Contiene( Nombre, "ABCD" ), For( j = 1, j <= N Fila( dt1 ), j++, GGG = Columna( dt1, "GGGer" )[j]; Nueva columna( Nombre, Carácter, "Nominal", Fórmula( If( 1 > :Col1 > 0, "0", "Fail" ) ) ); ); ) ); );Re: Comparación de múltiples columnas JSL con un número fijo usando for loop, y generar una nueva columna para out//añadir todas las imágenes en una tabla de resumen
directorio = elegir directorio();
fileNames = Archivos en el directorio (directorio);
resumen = Nueva tabla ("resumen", Nueva columna ("nombre", carácter), Nueva columna ("filas", numérico));
Para (iFile = 1, iFile <= N elementos (nombres de archivo), iFile++,
nombre de archivo = nombres de archivo [iFile];
Si (termina con (nombre de archivo, ".JPG"),
// dt = Abrir (directorio || nombre de archivo);
resumen << añadir filas( 1 );
resumen: nombre = nombre de archivo;
//resumen:filas = N Filas( dt );
// Cerrar( dt, "nosave" );
);
);
Re: Comparación de múltiples columnas JSL con un número fijo usando for loop, y generar una nueva columna para outHola @Stokes ,
Bienvenido a la comunidad JSL. La comunidad debería poder ayudarlo a abordar su problema. Sin embargo, para sus publicaciones futuras, puedo sugerir una pequeña cosa, cuando publique el código, inserte amablemente usando una de las siguientes opciones que se muestran a continuación. Esto ayudará a formatear el código y facilitará que los usuarios de la comunidad comprendan su código y ayuden a responder sus preguntas.

Ahora que lo hemos solucionado, veamos cómo abordar su problema:
Si entiendo bien tu pregunta -
1. ¿Cómo comparar columnas en una tabla de datos con cualquier parámetro?
2. ¿Por qué una referencia de columna ( Col = Column(dt,i); ) no reemplaza directamente un nombre de columna (:Col1) en una llamada de función?
Trataré de abordar estas preguntas lo mejor que pueda, así que hágamelo saber si no abordé nada en mi respuesta.
Clear Globals(); Clear Log();
// Open Sample Data
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Acquire Column Names
ColNames = dt1 << Get Column Names("String");
// Define a searchword and look for it in column names
DesiredColsPos1 = list();
DesiredColsPos2 = List();
KeyWord1 = "age";
for(i = 1 , i <= N Cols(dt1), i++,
If(Contains(ColNames[i],KeyWord1),
Insert Into(DesiredColsPos1,i);
);
);
// Display Result
Show(DesiredColsPos1);
// Alternatively
for(i = 1 , i <= N Cols(dt1), i++,
Col = Column(dt1,i); // This gets a reference for the column
Show(Col);
ColName = Col << Get Name;
If(Contains(ColName,KeyWord1),
Insert Into(DesiredColsPos2,i);
);
);
// Display Result
Show(DesiredColsPos2);