Script: elimine el prefijo de la cadena y la salida de la columna modificada al archivo de ExcelHola a todos. He estado siguiendo los consejos en Fórmula de análisis de cadenas y algunas otras referencias para escribir datos en archivos, en su mayoría aplicables a archivos de texto fragmentados, pero encontré el
Save Excel File()
función en el índice de secuencias de comandos. No sé qué significa/hace el último parámetro. No se explica. Es decir,
Separate Rows for Each Cell Statistic( 1 )
¿Es esto importante? No escribe nada en ningún archivo en la ubicación que he especificado, ya sea que este parámetro esté presente o no.
Aquí hay un bosquejo aproximado de mi guión:
dt = Current Data Table();
c = Words(:ID, "_");
Write(c);
s = c[2] || "_" || c[3] || "_" || c[4] || "_" || c[5];
Write(s);
s << Save Excel File(
"$DOCUMENTS\temp.xlsx",
Separate Rows for Each Cell Statistic( 1 )
);
Así que estoy tratando de eliminar el prefijo y mantener los cuatro "bloques de palabras" restantes más sus guiones bajos, que estoy agregando nuevamente a través de la concatenación de cadenas manualmente. Ver concatenación de cadenas y variables para la concatenación de cadenas "||" referencia.
De todos modos, no aparece ningún archivo en $DOCUMENTS\temp.xlsx.
También el, um, cómo se llama, terminal, ventana, registro, me está dando el error
Subscript Range in access or evaluation of 'c[2]' , c[/*###*/2]
y no se porque No se generan cadenas ni columnas como resultado de las instrucciones Write() que he incluido.
Así que básicamente nada funciona como debería. ¡Primero, supongo!
Háganme saber qué consejos se les ocurren a todos.
Salud,
Miguel
Tabla de datossecuencias de comandosRe: Script: eliminar el prefijo de la cadena y la salida de la columna modificada a un archivo de ExcelAgregue el puntero de la tabla de datos a la función de columna, asegúrese de que sea la tabla con la columna.
Columna(dt, :id)
parece que puede haber varias tablas abiertas y JMP está intentando usar la tabla actual, que no es la que desea.
Cuando crea el subconjunto, puede obtener el puntero de la tabla para la nueva tabla:
dtSubconjunto = dt<Re: Script: eliminar el prefijo de la cadena y la salida de la columna modificada a un archivo de Excel
Este es un gran marco; el problema que he identificado ahora es bastante simple:
La tabla con la que estoy trabajando es un subconjunto de filas de la tabla completa. Y cuando voy Columna (: ID), no encuentra la columna, es decir
could not find column{3} in access or evaluation of 'Column' , Column/*###*/(dt:ID)Lo cual parece muy simple, pero no sé por qué. Pensé que sería porque estoy usando un subconjunto de las filas, lo cual necesito hacer, pero puedo averiguar si es el caso probando el script en la tabla base. Un momento...
No, parece ser un problema en la tabla de datos completa también.
¿Algún consejo para "encontrar" mi columna?
Miguel
Re: Script: eliminar el prefijo de la cadena y la salida de la columna modificada a un archivo de Excel
Además, en general, si tiene una función que acepta un parámetro o variable, ¿pasar una columna realizará la función en forma de elemento a la columna?
No. Por lo general, si necesita que se evalúe algo para cada fila de una tabla de datos, querrá crear una columna de fórmula en la tabla de datos o usar el Por cada fila() iterador
JMP 16 presentó la Para cada() función para iterar sobre estructuras de datos JSL: listas, arreglos asociativos o matrices.
Re: Script: eliminar el prefijo de la cadena y la salida de la columna modificada a un archivo de ExcelAdemás, en general, si tiene una función que acepta un parámetro o variable, ¿pasar una columna realizará la función en forma de elemento a la columna?
Miguel
Re: Script: eliminar el prefijo de la cadena y la salida de la columna modificada a un archivo de ExcelGracias por la respuesta, @Thierry_S ! Actualmente estoy probando su scriptlet, así como algunas otras cosas.
Esto puede sonar como algo súper simple para la mayoría, pero en realidad no sé cuál es la mejor manera de visualizar la salida para fines de depuración cuando se trata de más de una variable de un solo valor, es decir, cómo mostrar una sola columna en un nueva tabla de datos (usando solo JSL), o imprima la columna en el registro, o algo así.
No recuerdo, tal vez he hecho esto antes y solo me estoy quedando en blanco, pero me siento un poco tonto por preguntar.
¡Gracias de nuevo!
Miguel
Re: Script: eliminar el prefijo de la cadena y la salida de la columna modificada a un archivo de ExcelCreo que Guardar archivo de Excel es un caso especial para la plataforma de análisis de respuesta categórica Opciones adicionales de plataforma categórica . Para guardar una tabla de datos como archivo de Excel, puede usar << Guardar (ruta).
Actualmente está intentando guardar solo una cadena en un archivo de Excel, una cadena creada a partir de la primera fila de la tabla de datos. Dependiendo de cómo y qué desee guardar, tiene diferentes opciones, a continuación se muestra una en la que los valores de la columna :ID se reemplazan con nuevos valores con los caracteres antes del primer _ eliminados:
Names Default To Here(1);
dt = New Table("Untitled 2",
Add Rows(3),
Compress File When Saved(1),
New Column("ID", Character, "Nominal", Set Values({"1_2_3_4_5_6", "2_3_4_5_6_7", "3_4_5_6_7_8"}))
);
Wait(1);
dt:ID << Set Each Value(
Substr(:ID, Contains(:ID, "_")+1)
);
dt << Save("$DOCUMENTS\test.xlsx");También podría crear una nueva columna con los nuevos valores, lo que probablemente sea un mejor enfoque.
Re: Script: eliminar el prefijo de la cadena y la salida de la columna modificada a un archivo de ExcelHola,
Cuando trato con cadenas, tiendo a preferir trabajar con funciones específicas de cadena (por ejemplo, Sustituto (), Munger (), Derecha (), Palabra ());
Por lo tanto, en su caso, sugeriría la siguiente fórmula para eliminar la primera parte de la cadena IDS, incluida la primera instancia del carácter "_":
Substitute( :IDS, Word( 1, :IDS, "_" ) || "_", "" )
Mejor,
TS