¿Cómo leer la tabla en la lista?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Digamos que tengo una tabla "dt" donde los nombres de las columnas no tienen sentido.
Y tengo una tabla "dt_source" con dos columnas: una columna con un nombre sin sentido y la otra tiene un nombre significativo correspondiente.
Estoy intentando escribir un script que cambie el nombre de las columnas de sin sentido a significativas.
Las columnas pueden ser diferentes, así que crearé una tabla maestra "dt_source" con los valores correspondientes.
Ahora tengo un script listo que toma nombres significativos y sin sentido de una lista dentro del script y cambia el nombre de las columnas para cada par, si ese nombre sin sentido existe.
Quiero poder tomar esos pares correspondientes que no están escritos en la lista:
nombre_in={"col1", "col2"};
name_out={"Edad", "Altura")
pero desde una mesa.
¿Cómo leo dt_name_source en dos listas: name_in y name_out?
Hasta ahora tengo esto:
Nombres predeterminados aquí ( 1 ) ;
Intentar ( fuente_dt = Tabla de datos ( "Cambio de nombre.jmp" ) , Tirar ( "Intentando abrir la tabla de datos" )) ;
Si ( No ( Es programable ( fuente_dt ) ) ,
fuente_dt = Abierto ( "Cambio de nombre.jmp" ) , fuente_dt = Tabla de datos ( "Cambio de nombre.jmp" ) ;
) ;
Tabla de datos actuales ( fuente_dt ) ;
nombre_en = Lista () ;
nombre_fuera = Lista () ;
col_name_in = Columna ( "nombre_en" ) ;
col_name_out = Columna ( "nombre_fuera" ) ;
i = 0 ;
Por cada fila ( nombre_en [ i ] = col_name_in [] ; nombre_fuera [ i ] = col_name_out [] ; i ++ ) ;
Pero luego no le gusta:
Problema de subíndice{1} en el acceso o evaluación de 'Assign', name_in = /*###*/col_name_in[] /*###*/
Si pruebo solo una variable
Por cada fila ( nombre_en = col_name_in [] ; nombre_fuera = col_name_out [] ) ;
Entonces está bien, pero es sólo una variable que toma valores diferentes a medida que avanza el ciclo.
Y necesito una lista.
¿Alguien puede dar una idea de cómo manejar esto?
¡Gracias!
Re: ¿Cómo leer una tabla en una lista?Probablemente haría las cosas un poco diferentes:
Los nombres están predeterminados aquí (1);
// Puntero a la tabla de datos que se va a cambiar
dt = data table("El nombre de la tabla que se va a cambiar");
para(i=1, i<=N elementos(name_out), i++,
Si(intenta(columna(dt, nombre_in ) << obtener nombre, "") != "", columna( dt, nombre_in ) << Establecer nombre(name_out ));
);
Re: ¿Cómo leer una tabla en una lista?Jim,
Esto parece funcionar bien por ahora. Déjame saber si esta es una forma correcta de hacer las cosas:
para(i=1, i<=N elementos(name_out), i++,
mostrar(i); Si( !Falta( Es Scriptable( Pruebe( Columna( nombre_en ) ) ) ), col=Columna(nombre_en )< );
mostrar(col); mostrar(i))
) ;
Re: ¿Cómo leer una tabla en una lista?Jim,
Muchas gracias por la respuesta. Funciona muy bien.
Sin embargo, descubrí que mi código de cambio de nombre no funciona si no hay columnas con uno de los nombres de name_in (y a menudo habrá columnas en la tabla que no tienen TODOS los nombres de la tabla NameChanging.jmp).
Hasta ahora tengo esto:
para(i=1, i<=N elementos(name_out), i++,
mostrar(i); Pruebe (col = Columna (nombre_en )< ), Throw("NO SE ENCONTRÓ COLUMNA");
mostrar(col)); mostrar(yo)
)
Pero el ciclo se interrumpe después de la primera iteración cuando no encuentra el nombre de name_in en la tabla.
Re: ¿Cómo leer una tabla en una lista?Creo que el siguiente script obtendrá los valores en las listas que necesita:
Nombres predeterminados aquí ( 1 ) ;
Si ( Intentar ( fuente_dt << obtener nombre, "" ) != "Cambio de nombre" ,
fuente_dt = Abierto ( "Cambio de nombre.jmp" )
) ;
nombre_en = fuente_dt : nombre_en << obtener valores;
nombre_fuera = fuente_dt : nombre_fuera << obtener valores;