JMP 12.2
Me gustaría comprender el significado de este número y, lo más importante, cómo eliminarlo / modificarlo. Me gustaría evitar la duplicación de columnas debido a que son tablas muy grandes que deben manipularse rápidamente.
El número "19" que se muestra después de la palabra "Carácter" a continuación (el número puede ser diferente, solo elegí 19 como ejemplo):
New Table( "Untitled",
Add Rows( 1 ),
New Column( "Column1", Character( 19 ), "Nominal", Set Values( {"Hello World"} ) )
)Una vez generada la tabla, ¿cómo me desharía de "(19)" de la forma más rápida posible?
Lo intenté:
:Column1 << Data type( Character );
:Column1 << Data type( Character() );<BR />:Column1 << Data type( Character(0) );
Puedo verlo usando GetScript (), no puedo verlo usando ShowProperties ();
Puede decir que es benigno y, por lo general, no me preocupo por este número, pero he encontrado un caso en el que un Join se vuelve erróneo con el número en su lugar (o tal vez se supone que este número influye en los Joins).
Tu pregunta me confundió. He estado usando JMP desde la década de 1990 y no recuerdo haberme encontrado nunca con "Character (x)". Así que hice una investigación. La mayoría de las referencias al uso de esta notación provienen de proporcionar información sobre el ancho de columna para leer archivos .txt o en aplicaciones OLE. Hay una referencia en la Guía de secuencias de comandos para "Agregar varias columnas". Sin embargo, al observar la sintaxis en el Índice de secuencias de comandos para "Agregar múltiples columnas", se refiere al uso de un elemento llamado "ancho de campo (número)", no un (número) después de la especificación del tipo de datos de Carácter. Por lo que puedo decir, solo establece un ancho mínimo de la columna que se está creando. Dado que los valores / columnas de caracteres JMP son dinámicos y pueden tener de 0 a más de mil millones de caracteres de longitud, sugeriría que en su codificación nunca use la especificación de ancho después de la definición de una nueva columna del tipo de datos Character.
Ahora, cómo deshacerse del ancho mínimo.
Descubrí que si asigna un valor de carácter de una longitud significativa, sobre el ancho especificado, JMP eliminó la especificación de ancho.
Entonces, dado tu ejemplo
New Table( "Untitled",
Add Rows( 1 ),
New Column( "Column1", Character( 19 ), "Nominal", Set Values( {"Hello World"} ) )
);
Recuperar los retornos del script de la tabla de datos
New Table( "Untitled",
Add Rows( 1 ),
New Column( "Column1",
Character( 19 ),
"Nominal",
Set Values( {"Hello World"} )
)
)
Si ejecuta el siguiente JSL que obtiene el valor de la primera fila en la tabla de datos y asigna un valor largo a la primera fila, y finalmente reemplaza el valor original de nuevo, usando este código
holdValue = :Column1[1];
:Column1[1] = repeat("a",500);
:column1[1] = holdValue;
La secuencia de comandos de la tabla recuperada es
New Table( "Untitled",
Add Rows( 1 ),
New Column( "Column1", Character, "Nominal", Set Values( {"Hello World"} ) )
)
Se ha eliminado la referencia de ancho.
Todo esto se probó con JMP 12.2
Este es el método que se me ocurrió para eliminar el problema del ancho de los caracteres. Algún otro miembro de la comunidad puede tener una mejor manera. ¡Espero que lo hagan!
Sí, me costó mucho intentar encontrar documentación de lo que significa el número. Seguro que no lo pongo ahí ... parece ser generado automáticamente.
Su método parece funcionar, pero me pregunto si hay una forma más elegante de modificarlo o eliminarlo.
¡Muchas gracias por la ayuda!