¿Cómo puedo importar la propiedad de la columna en el archivo de datos JMP?Hola,
Nuevo desafío:
He creado la propiedad de la columna: Número de prueba en el 1er_archivo. Cada prueba tiene un número de prueba único que se puede encontrar en la propiedad de la columna, como puede ver a continuación en el círculo rojo resaltado:

Tengo un segundo archivo JMP que tiene 1 columna (Prueba):

Estoy tratando de escribir un script que pueda copiar el número de prueba del primer archivo y asignar el valor más bajo entre las pruebas en el segundo archivo para que mi salida se vea relativamente así:
El número de prueba se define en la propiedad Columna del primer archivo
P.ej quemar, enfriar, EDS = Min[Número de prueba] = 21
Producción:

¿Alguna sugerencia?
Gracias
Re: ¿Cómo puedo importar la propiedad de la columna en el archivo de datos JMP?Buen intento con el If... pero la ramificación debe tener un alcance mayor.Vea abajo......
Names Default To Here( 1 );
dt1 = Data Table( "1st_file" );
dt2 = Data Table( "2nd file" );
dt2 << New Column( "Test Number" );
For( i = 1, i <= N Rows( dt2 ), i++,
k = 1;
While( Word( k, dt2:test[i], "," ) != "",
theWord = Word( k, dt2:test[i], "," );
If( theWord != "N/A",
If( k == 1,
theTest = Column( dt1, theWord ) << get property( "Test Number" ),
theCompare = Column( dt1, theWord ) << get property( "Test Number" );
If( theCompare < theTest,
theTest = theCompare
);
)
,
theTest = 0
);
k++;
);
dt2:test number[i] = theTest;
);Re: ¿Cómo puedo importar la propiedad de la columna en el archivo de datos JMP?Hola @txnelson ,
Una última pregunta
tengo algunos N / A Pruebe en las filas que se ven así. quería asignar Número de prueba como 0 a N / A filas

agregué un si() pero no estoy seguro si ingresé la declaración correctamente. ¿Podrías mirarlo por favor?
Names Default To Here( 1 );
dt1 = Data Table( "1st_file" );
dt2 = Data Table( "2nd file" );
dt2 << New Column("Test Number");
For( i = 1, i <= N Rows( dt2 ), i++,
k = 1;
While( Word( k, dt2:test[i], "," ) != "",
theWord = Word( k, dt2:test[i], "," );
If( k == 1,
theTest = Column( dt1, theWord ) << get property( "Test Number" ),
theCompare = Column( dt1, theWord ) << get property( "Test Number" );
If( theCompare < theTest,
theTest = theCompare
);
);
k++;
<STRONG>If( Word( 1, dt2:test[i], "," ) == N/A,
dt2:test number[i] = 0;
);</STRONG><BR /> );
dt2:test number[i] = theTest;
);
Re: ¿Cómo puedo importar la propiedad de la columna en el archivo de datos JMP?Names Default To Here( 1 );
dt1 = Data Table( "1st_file" );
dt2 = Data Table( "2nd file" );
For( i = 1, i <= N Rows( dt2 ), i++,
k = 1;
While( Word( k, dt2:test[i], "," ) != "",
theWord = Word( k, dt2:test[i], "," );
If( k == 1,
theTest = Column( dt1, theWord ) << get property( "Test Number" ),
theCompare = Column( dt1, theWord ) << get property( "Test Number" );
If( theCompare < theTest,
theTest = theCompare
);
);
k++;
);
dt2:test number[i] = theTest;
);Re: ¿Cómo puedo importar la propiedad de la columna en el archivo de datos JMP?Hola @txnelson ,
¿Puedes publicar el código si es posible? Tengo plazos para completar esta tarea. Intenté usar la función while () para filas que tienen menos de 3 Pruebas pero no se está ejecutando. La discusión se está volviendo larga y confusa.
Re: ¿Cómo puedo importar la propiedad de la columna en el archivo de datos JMP?Hola @txnelson ,
Tengo una sugerencia. ¿Puedo crear una lista y almacenar el número de prueba en la lista y usar la sintaxis? Min() asignar el número más bajo?
For (i=1, i<=2, i++,
theWord = word(i,dt2:test[1],",");
theTest() = column( dt1, theWord ) << get property("Test Number");
dt2:test number[1] = Min(theTest);
);
Re: ¿Cómo puedo importar la propiedad de la columna en el archivo de datos JMP?Este es mío... Estaba haciendo una prueba con la variable incorrecta.Las declaraciones que hacen la comparación deben decir
If( theCompare < theTest,
theTest = theCompare
);
Pero tiene otro problema... la secuencia de comandos asume que siempre tiene 3 valores en cada una de las filas de la columna Prueba.Cuando hay menos de 3, el script fallará, o si hay más de 3, nunca se comparará con los elementos de 4,5, etc.
Eche un vistazo a la función While() para saber cómo resolver este problema.
A continuación se muestra el código corregido para las declaraciones de comparación
Names Default To Here( 1 );
dt1 = Data Table( "1st_file" );
dt2 = Data Table( "2nd file" );
For( i = 1, i <= N Rows( dt2 ), i++,
theWord = Word( 1, dt2:test[i], "," );
theTest = Column( dt1, theWord ) << get property( "Test Number" );
theWord = Word( 2, dt2:test[i], "," );
theCompare = Column( dt1, theWord ) << get property( "Test Number" );
If( theCompare < theTest,
theTest = theCompare
);
theWord = Word( 3, dt2:test[i], "," );
theCompare = Column( dt1, theWord ) << get property( "Test Number" );
If( theCompare < theTest,
theTest = theCompare
);
dt2:test number[i] = theTest;
);
Re: ¿Cómo puedo importar la propiedad de la columna en el archivo de datos JMP?Hola @txnelson ,
La lógica que sugirió no funciona para algunas condiciones. Si cambio el orden de la prueba, el script genera valores incorrectos y el número de prueba para las filas 4,5,6 está en blanco
Prueba = Enfriamiento, ESD, Corriente
Número de prueba = Mínimo de Número de prueba [32, 87, 23] = 23
El número de prueba debe ser 23 en la segunda columna.

Corregí la declaración que usted sugirió:
For (i=1, i<=nrows(dt2), i++,
theWord = word(1,dt2:test[i],",");
theTest = column( dt1, theWord ) << get property("Test Number");
theWord = word(2,dt2:test[i],",");
theCompare = column( dt1, theWord ) << get property("Test Number");
If( theCompare < theWord, theTest = theCompare );
theWord = word(3,dt2:test[i],",");
theCompare = column( dt1, theWord ) << get property("Test Number");
If( theCompare < theWord, theTest = theCompare );
dt2:test number[i] = theTest;
);
Re: ¿Cómo puedo importar la propiedad de la columna en el archivo de datos JMP?El problema es con esta declaración.
theWord = word(i,dt2:test[i],",");
Su ciclo For() usa "i" como índice, y varía de 1 a N filas (dt2).Por lo tanto, varía de 1 a 5. Está utilizando el índice "i" en 2 lugares diferentes dentro de la función Word().dt2:Test[i] leerá de la 1 a la 5 filas.Pero, si echa un vistazo a la referencia de sintaxis de JSL para la función Word()
Word(n|[first last], string, <delimiter>, <Unmatched(result string)>)
Description
Returns the nth item of the string, where words are sub-strings separated by any number of
any characters in the delimiter argument.
Arguments
n The position of the word being extracted.
[first last] A matrix that defines the beginning and end word range to return.
string The string that is evaluated.
delimiter (Optional) The character used as a boundary. If delimiter is absent, an ASCII
space is used. If delimiter is the empty string, each character is treated as a separate
word. If delimiter is an empty string, each character is treated as a spate word.
Unmatched(result string) The string to print if no match is found.
Examples
This example returns the last name:
Word( 2, "Katie Layman" );
Note
See “Item(n|[first last], string, <delimiter>, <Unmatched(result string)>, <Include
Boundary Delimiters(Boolean)>)” on page 35 for examples of how Word() differs from
Item().
lo que está especificando para la palabra que desea eliminar depende del valor de "i".Eso no es lo que quieres.En el código que proporcioné, si miras, era un 1, 2 o 3
Así que tienes que ajustar eso
Re: ¿Cómo puedo importar la propiedad de la columna en el archivo de datos JMP?Hola @txnelson ,
Usé For loop en el script que publicaste.
names default to here(1);
dt1 = data table("1st_file");
dt2 = data table("2nd file");
dt2 << New Column("Test Number");
For(i=1, i<=nrows(dt2),i++,
theWord = word(i,dt2:test[i],",");
theTest = column( dt1, theWord ) << get property("Test Number");
theWord = word(i,dt2:test[i],",");
theCompare = column( dt1, theWord ) << get property("Test Number");
If( theCompare < theWord, theTest = theCompare );
theWord = word(i,dt2:test[i],",");
theCompare = column( dt1, theWord ) << get property("Test Number");
If( theCompare < theWord, theTest = theCompare );
dt2:test number[i] = theTest;
);
<BR />No está asignando valores para las filas 4 y 5 del segundo archivo

Estoy bastante seguro de que cometí algún error en For loop. ¿Puede por favor darme alguna orientación?
Re: ¿Cómo puedo importar la propiedad de la columna en el archivo de datos JMP?@txnelson Eres un genio. Sí, tienes razón, comenzaré a aprender. Muchas graciasRe: ¿Cómo puedo importar la propiedad de la columna en el archivo de datos JMP?@Jacksmith12 Se le han mostrado todas estas instrucciones y funciones en ejemplos anteriores.Tienes que empezar para poder intentar armarlos tú mismo.En informática, la única forma de aprender es cometiendo errores y averiguando cuál es el problema.A continuación se muestra un flujo para una sola entrada de su 2nd_file, que devuelve el número de prueba mínimo.Debería poder juntar el resto del código.
names default to here(1);
dt1 = data table("1st_file ");
dt2 = data table("2nd file ");
dt2 << New Column("Test Number");
theWord = word(1,dt2:test[1],",");
theTest = column( dt1, theWord ) << get property("Test Number");
theWord = word(2,dt2:test[1],",");
theCompare = column( dt1, theWord ) << get property("Test Number");
If( theCompare < theWord, theTest = theCompare );
theWord = word(3,dt2:test[1],",");
theCompare = column( dt1, theWord ) << get property("Test Number");
If( theCompare < theWord, theTest = theCompare );
dt2:test number[1] = theTest;
Asegúrese de comprender cada línea del código y, si no es así, haga preguntas específicas sobre lo que no comprende.
Re: ¿Cómo puedo importar la propiedad de la columna en el archivo de datos JMP?¿Puede dar un ejemplo de inicio rápido?Re: ¿Cómo puedo importar la propiedad de la columna en el archivo de datos JMP?En 1st_file, las columnas solo tienen 1 propiedad de columna cada una, número de prueba... sin nombre de prueba.
Suponiendo que una segunda propiedad de columna para cada columna de nombre de prueba debería haber estado en la tabla de datos 1st_File, entonces creo que la mejor manera de acceder a ellos sería crear una matriz asociativa. Luego recorra cada una de las columnas, extraiga las propiedades de las 2 columnas y colóquelas en la matriz asociativa. Finalmente, uno recorrería el 2nd_file, fila por fila, y tomando el valor de la columna Prueba, sería una simple búsqueda en la matriz asociativa, para obtener el número de prueba requerido.Re: ¿Cómo puedo importar la propiedad de la columna en el archivo de datos JMP?Hola @txnelson ,
Haga clic derecho en las propiedades de la columna y encontrará el Número de prueba y el Nombre de la prueba
Re: ¿Cómo puedo importar la propiedad de la columna en el archivo de datos JMP?¿Cómo se sabe cuál de las columnas en 1st_file se evalúa en el cálculo del valor de una fila en particular en 2nd_file?