¿Cómo puedo seleccionar un valor de una tabla externa indexando valores en dos columnas en la tabla JMP?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Estoy trabajando en una mesa JMP muy grande. Me gustaría seleccionar un valor de una pequeña tabla bidimensional externa y poner ese valor en una nueva columna. Para seleccionar el valor de la tabla externa, me gustaría usar valores en cada fila de las dos columnas de la tabla JMP actual como los dos subíndices de la tabla pequeña externa. ¿Alguien puede ayudarme a hacer esto?
Tengo dos archivos. Big_data_matrix contiene la primera columna que solo puede tener valores entre 1 y 24. La columna 2 está vacía. Values.jmp es una tabla pequeña que contiene una columna con 24 entradas. Para cada fila en Big_data_matrix me gustaría leer el valor en la columna 1, y si es igual a k, entonces me gustaría elegir la k-ésima entrada (k=1:24) de los valores. jmp table e ingréselo en la segunda columna de Big_data_matrix.
Mi Big_data_matrix original es muy grande (>1 millón de filas) y tengo que hacer esto para muchas tablas de datos Big_data_matrix diferentes.
Probablemente esto sea fácil de hacer en jsl, pero no tengo experiencia con JSL y me gustaría hacerlo dentro de JMP, si es posible.
Gracias.
El mensaje fue editado por: Ranjan Sonalkar
Re: ¿Cómo puedo seleccionar un valor de una tabla externa indexando valores en dos columnas en la tabla JMP?EM
Gracias. Solución simple y funciona muy bien.
Re: ¿Cómo puedo seleccionar un valor de una tabla externa indexando valores en dos columnas en la tabla JMP?Puede utilizar la instrucción UPDATE para actualizar la tabla grande con valores de la tabla pequeña.Aquí hay un ejemplo de JSL:
dt_grande = Nueva mesa ( "Big_data_matriz" ,
Agregar filas ( 2400 ) ,
Nueva columna ( "Primera columna" , Numérico , Continuo , Formato ( "Mejor" , 12 ) )
) ;
dt_val = Nueva mesa ( "Valores" , Agregar filas ( 24 ) ,
Nueva columna ( "Columna 1" , Personaje , Nominal ,
Establecer valores ( { "AUTOMÓVIL CLUB BRITÁNICO" , "CAMA Y DESAYUNO" , "CC" , "DD" , "EE" , "FF" , "GG" , "S.S" , "II" , "JJ" , "KK" , "LL" ,
"mm" , "NN" , "OO" , "PÁGINAS" , "QQ" , "RR" , "SS" , "TT" , "UU" , "VV" , "WW" , "XX" } ) ) ,
Nueva columna ( "Numero de fila" , Numérico , Continuo , Formato ( "Mejor" , 12 ) ,
Establecer valores ( [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , dieciséis , 17 , 18 , 19 , 20 ,
21 , 22 , 23 , 24 ] ) )
) ;
// Rellenar con números enteros aleatorios del 1 al 24
para ( i = 1 , i <= 2400 , i ++,
columna ( dt_grande , "Primera columna" )[ i ] = redondo ( uniforme aleatorio ( 1 , 24 ) , 0 ) ;
) ;
dt_grande << Actualizar (
Con ( dt_val ) ,
Coincidir columnas ( : Primera columna = : Numero de fila ) ,
Agregar columnas desde la tabla de actualización ( : Columna 1 )
) ;
Re: ¿Cómo puedo seleccionar un valor de una tabla externa indexando valores en dos columnas en la tabla JMP?Ok, la indexación es unidimensional. Entonces te sugiero que uses Update.
Primero, agregue una segunda columna a Values.jmp, con los valores del 1 al 24. Luego, active la mesa grande y seleccione Actualizar en el menú de tablas. Seleccione Values.jmp en el cuadro de lista y marque "Coincidir columnas". Luego, haga coincidir la primera columna de la tabla grande con la columna de ID recién creada en Values.jmp.
Luego se agrega a la tabla grande una nueva columna con valores correspondientes al número en la columna 1 (si la columna vacía 2 en la tabla grande recibe el mismo nombre que la columna de valores en la tabla pequeña, esta columna se completará en lugar de una nueva columna).
Y sí, se podría escribir fácilmente.
Re: ¿Cómo puedo seleccionar un valor de una tabla externa indexando valores en dos columnas en la tabla JMP?Tengo dos archivos. Big_data_matrix contiene la primera columna que solo puede tener valores entre 1 y 24. La columna 2 está vacía. Values.jmp es una tabla pequeña que contiene una columna con 24 entradas. Para cada fila en Big_data_matrix me gustaría leer el valor en la columna 1, y si es igual a k, entonces me gustaría elegir la k-ésima entrada (k=1:24) de los valores. jmp table e ingréselo en la segunda columna de Big_data_matrix.
Mi Big_data_matrix original es muy grande (>1 millón de filas) y tengo que hacer esto para muchas tablas de datos Big_data_matrix diferentes.
Probablemente esto sea fácil de hacer en jsl, pero no tengo experiencia con JSL y me gustaría hacerlo dentro de JMP, si es posible.
Gracias.
Re: ¿Cómo puedo seleccionar un valor de una tabla externa indexando valores en dos columnas en la tabla JMP?A continuación se muestra un ejemplo sobre cómo usar jsl para obtener valores de otras tablas según coordenadas 2D en la tabla principal.
//Tablas de ejemplo
dt1 = Nueva mesa ( "Mesa grande" ,
Agregar filas ( 10 ) ,
Nueva columna ( "índice_fila" , Establecer valores ([ 1 , 2 , 3 , 4 , 5 , 1 , 2 , 3 , 4 , 5 ])) ,
Nueva columna ( "índice_columna" , Establecer valores ([ 1 , 2 , 3 , 1 , 2 , 3 , 1 , 2 , 3 , 1 ]))
) ;
dt2 = Nueva mesa ( "Mesa pequeña" ,
Agregar filas ( 5 ) ,
Nueva columna ( "Columna 1" , Establecer valores ([ 1 , 2 , 3 , 4 , 5 ])) ,
Nueva columna ( "Columna 2" , Establecer valores ([ 6 , 7 , 8 , 9 , 10 ])) ,
Nueva columna ( "Columna 3" , Establecer valores ([ 11 , 12 , 13 , 14 , 15 ]))
) ;
// Agrega nuevos valores de columnas de tablas pequeñas correspondientes a las dos columnas de índice
dt1 << Nueva columna ( "datos" , numérico ) ;
Por cada fila ( dt1 : datos = Columna ( dt2 , evaluar ( : índice_columna []))[ : índice_fila ]) ;
Re: ¿Cómo puedo seleccionar un valor de una tabla externa indexando valores en dos columnas en la tabla JMP?Hola,
¿Podría proporcionar un pequeño ejemplo de sus tablas y el resultado deseado?Eso debería ayudar a aclarar lo que está tratando de lograr.
Gracias.