¿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 tabla 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 pequeña tabla 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, me gustaría elegir la entrada k-ésima (k = 1:24) de los valores. jmp y ingréselo en la segunda columna de Big_data_matrix.
Mi Big_data_matrix original es muy grande (>1M de filas) y tengo que hacer esto para muchas tablas de datos de Big_data_matrix diferentes.
Esto probablemente 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 usar 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 tabla ( "Matriz_de_grandes_datos" ,
Agregar filas ( 2400 ) ,
Nueva columna ( "Primera columna" , Numérico , Continuo , Formato ( "Mejor" , 12 ) )
) ;
valor_dt = Nueva tabla ( "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" , "Yo" , "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 enteros aleatorios del 1 al 24
por ( i = 1 , i <= 2400 , i ++,
columna ( dt_grande , "Primera columna" )[ i ] = redondo ( uniforme al azar ( 1 , 24 ) , 0 ) ;
) ;
dt_grande << Actualizar (
Con ( valor_dt ) ,
Coincidencia de columnas ( : Primera columna = : Numero de fila ) ,
Agregar columnas de 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 tabla grande y seleccione Actualizar en el menú de tablas. Seleccione Values.jmp en el cuadro de lista y marque "Coincidencia de columnas". Luego, hace coincidir la primera columna en la tabla grande con la columna 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 valor en la tabla pequeña, esta columna se llenará en lugar de una nueva columna).
Y sí, fácilmente podría tener un guión.
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 pequeña tabla 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, me gustaría elegir la entrada k-ésima (k = 1:24) de los valores. jmp y ingréselo en la segunda columna de Big_data_matrix.
Mi Big_data_matrix original es muy grande (>1M de filas) y tengo que hacer esto para muchas tablas de datos de Big_data_matrix diferentes.
Esto probablemente 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?Aquí hay un ejemplo de cómo usar jsl para obtener valores de otras tablas basadas en coordenadas 2D en la tabla principal.
//Tablas de ejemplo
dt1 = Nueva tabla ( "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 tabla ( "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 ]))
) ;
// Agregar 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.