Evaluación de la tabla de datos en For Loop de una listaSigo encontrando un error con mi script para cambiar el nombre de las tablas de datos usando un bucle For.
Aquí hay una versión simplificada de mi script.
OldNames = {"Nombre antiguo 1", "Nombre antiguo 2", "Nombre antiguo 3"};
NewNames = {"Nuevo nombre 1", "Nuevo nombre 2", "Nuevo nombre 3"};
Para(
I,
i <= NNames,
i ++,
dt = Tabla de datos (OldNames [i]);
dt << Establecer nombre (NewNames [i])
);
Sigo recibiendo el siguiente error
No se puede ubicar la tabla de datos en el acceso o evaluación de 'Tabla de datos', Tabla de datos / * ### * / (OldNames [i])
Sin embargo, cuando evalúo la tabla de datos (OldNames [1]), ¡no hay ningún error!
Tabla de datosRe: evaluación de la tabla de datos en For Loop de una listaHola,
Cambié los dos primeros argumentos del ciclo For en consecuencia.Debería funcionar ahora:
OldNames = {"Old Name 1", "Old Name 2", "Old Name 3"};
NewNames = {"New Name 1", "New Name 2", "New Name 3"};
For(
i=1,
i <= NItems(NewNames),
i++,
dt = Data Table(OldNames[i]);
dt << Set Name(NewNames[i])
);
Re: Evaluación de la tabla de datos en For Loop desde una listaParece que te falta al menos una definición para i (i = 1), y tampoco estoy seguro de qué es NNames.
Esto debería ser un ejemplo de trabajo:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt = Open("$SAMPLE_DATA/Quality Control/Failures3Delimited.jmp");
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
OldNames = {"Big Class", "Failures3Delimited", "Semiconductor Capability"};
NewNames = {"New Name 1", "New Name 2", "New Name 3"};
For(i = 1, i <= N Items(OldNames), i++,
dt = Data Table(OldNames[i]);
dt << Set Name(NewNames[i])
);Re: Evaluación de la tabla de datos en For Loop desde una listaLo siento, me di cuenta de que me perdí partes de mi guión mientras simplificaba.
NNombres = NIelementos(NuevosNombres);
y i=1 para el primer argumento en el ciclo For.
Incluso con ambos definidos correctamente en mi secuencia de comandos, sigo recibiendo el mismo mensaje de error
Re: Evaluación de la tabla de datos en For Loop desde una lista@usuario8421 ,
¿Ejecutaste con éxito @jthi el guion?Si es así, entonces sospecho:
- una o más de las mesas están cerradas
- una o más de las mesas son privadas
- nombres antiguos equivocados.
A continuación se muestra una ligera modificación de @jthi guión de . Hago privada la tercera tabla y agrego instrucciones show al ciclo For.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt = Open("$SAMPLE_DATA/Quality Control/Failures3Delimited.jmp");
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp", "Private");
OldNames = {"Big Class", "Failures3Delimited", "Semiconductor Capability"};
NewNames = {"New Name 1", "New Name 2", "New Name 3"};
For(i = 1, i <= N Items(OldNames), i++,
show(i, OldNames[i], NewNames[i]);
dt = Data Table(OldNames[i]);
dt << Set Name(NewNames[i]);
);
Aquí está la salida del registro
/*:
i = 1;
OldNames[i] = "Big Class";
NewNames[i] = "New Name 1";
i = 2;
OldNames[i] = "Failures3Delimited";
NewNames[i] = "New Name 2";
i = 3;
OldNames[i] = "Semiconductor Capability";
NewNames[i] = "New Name 3";
Cannot locate data table in access or evaluation of 'Data Table' , Data Table/*###*/(OldNames[i])
at line 11 in Script.jsl
La Guía de secuencias de comandos JMP establece para la tabla privada que
- Las tablas privadas no se cuentan cuando N Table() devuelve el número de tablas de datos abiertas.
- Las tablas privadas no se pueden actualizar con la tabla de datos actual().
Esto me hizo pensar que una tabla privada podría no tener la misma funcionalidad, podría no tener los nombres almacenados en la memoria ya que no se cuenta.
¡Buena suerte!
Re: Evaluación de la tabla de datos en For Loop desde una listaGracias un montón.Fue un problema con uno de los nombres de las tablas y una de las tablas era una tabla privada.