Dificultad para convertir columnas de carácter a numérico<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola a todos,
Esta es mi primera publicación: estoy intentando automatizar el procesamiento de datos en el que recibo datos en forma de hojas de cálculo de Excel ... Hay una pestaña en el libro con toda la información relevante.
JMP parece importar una gran cantidad de datos como caracteres, no numéricos, y puedo convertir los datos a números de forma manual en la tabla (forma habitual) pero no con un script:
¿Algunas ideas?
Gracias
Tom
Establecer el directorio actual ("C: \ JDSU \ ServerCopy \ Data \ Post-processing caracterization \ Flash IV \ AWSC");
dt = abierto (); // esta es la única forma que he encontrado para que me permita seleccionar la hoja de trabajo relevante "Ordenar datos" en el archivo .xls
tablas = ntable ();
OpenDTs = List ();
savethis = list ();
closethese = list ();
espectáculo (dt);
/ * Este bucle pensé que funcionaría para eliminar las tablas abiertas que no quiero, pero solo cierra algunas, no todas, de las tablas no deseadas
para (i = 1, i <= tablas, i ++,
Insertar en (openDTs, Tabla de datos (i) << GetName ());
IF (Tabla de datos (i) << GetName () == "Ordenar datos",
Continuar();
cerrar (DataTable (i));
);
);
* /
dt << borrar filas ({1,2,3,4,5,6,7,8,9,9}); // las primeras nueve filas no son datos, ¿hay alguna forma de capturar esto en el comando open ()?
columna (1) << nombre del conjunto ("Wafer ID");
columna (2) << nombre del conjunto ("Xref-Yref");
columna (3) << establecer el tipo de datos ("numérico"); // esto no funciona ....
// columna ({3,4,5,6,7,8,9,10,11,12,13}) << establecer el tipo de datos (numérico); // ni esto hace
col = Nueva columna ("FF_Calc", numérico);
col << set formula (: vmp *: imp /: Voc /: Isc); // esto devuelve errores ya que no puedo cambiar las columnas ofensivas a numéricas.
col = NEw COlumn ("xref", carácter);
col = columna nueva ("yref", carácter);
columna ("voc") << establecer el tipo de datos ("numérico"); // todavía no funciona
Re: Problemas al convertir columnas de caracteres a numéricasDebe "ejecutar" las fórmulas de las columnas antes de usarlas. Coloque esta línea antes de la declaración para cada fila:
dt << ejecutar fórmulas;
donde dt apunta a su tabla de datos.
Re: Problemas al convertir columnas de caracteres a numéricasTom, creo que deberías volver a publicar esto en el foro de JMP.
Arte
Re: Problema al convertir columnas de caracteres a numéricasUn ejemplo de sintaxis correcta para cambiar una columna de caracteres a numérica:
columna("voc") << Tipo de dato( numérico );
column("voc") << Tipo de modelado(continuo); // si desea un tipo de modelado continuo
o
dt:voc << etc...
Parece que su declaración "si" necesita una coma después de "continuar" ...
Re: Problema al convertir columnas de caracteres a numéricasMuchas gracias.
¿Tienes alguna idea de por qué un bucle for each row() funciona bien si lo ejecuto resaltando y luego Ctrl+R en la ventana JSL, pero no funciona cuando se ejecuta como parte de todo el script?
col = New COlumn("FF_Calc", numérico) << Tipo de modelado (continuo);
columna<
Nueva columna("xref", Carácter, Ordinal, Fórmula(Si(Derecha(Izquierda(:Nombre("Xref-Yref"), 2), 1) == "-", Izquierda(:Nombre("Xref-Yref"), 1), Izquierda(:Nombre("Xref-Yref"), 2))), Establecer propiedad("Orden de valores", {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16"}));
Nueva columna("yref", Carácter, Ordinal, Fórmula(Si(Izquierda(Derecha(:Nombre("Xref-Yref"), 2), 1) == "-", Derecha(:Nombre("Xref-Yref"), 1), Derecha(:Nombre("Xref-Yref"), 2))), Establecer propiedad("Orden de valores", {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16"}));
para cada fila(
if(:FF_Calc < 0, rowstate() = estado excluido(1), :FF_calc > 1, rowstate() = estado excluido(1), rowstate() = estado excluido(0)
);
);
para cada fila(
si (dt:FF_Calc < 0, rowstate() = estado excluido(1), dt:FF_Calc > 1, rowstate() = estado excluido(1), rowstate() = estado excluido(0)
);
); // Ninguno de estos funciona en el script, pero si se ejecutan manualmente funcionan correctamente. ¿Tengo que seleccionar la tabla o algo similar?
Re: Problema al convertir columnas de caracteres a numéricas¡Bingo!
¡Muchas gracias!
Re: Problema al convertir columnas de caracteres a numéricas¿Cómo es que no funciona? ¿Recibes un mensaje de error o un resultado incorrecto?
De todos modos, la variable de columna col no está asignada correctamente. Debe enviar el mensaje de tipo de modelado en una instrucción aparte o dentro de New Column(). Una vez asignada, puede usar col en lugar de :FF_Calc.
P.ej
col = Nueva Columna ( "FF_Calc" , numérica , continua ) ;
col << establecer valores ( { - 1 , 0 , 1 , 2 } ) ;
Para cada fila (
Si(
columna < 0 , Estado de fila () = Estado excluido ( 1 ) ,
columna > 1 , Estado de fila () = Estado excluido ( 1 ) ,
Estado de fila () = Estado excluido ( 0 )
)
);