Creando ColumnasBien, esto probablemente suene como una pregunta muy fácil, pero estoy teniendo dificultades para hacerlo.
Así que tengo estos datos que están formateados como: (número) | (nombre) | (número) | (nombre) | (número) .... etc. Bueno, tengo un bucle que mira la cadena, analiza la información por el delimitador ('|') y luego toma todas las demás entradas en esa nueva lista (todos los "nombres") y coloca solo aquellos en la nueva lista. Esa nueva lista se usa para crear un montón de columnas. Lo que descubrí es que los valores numéricos que luego uso de esa cadena y lugar en cada columna es técnicamente un carácter, por lo que cuando trato de usar una fórmula en la columna, simplemente puntea todo. Lo que tengo que hacer es crear una nueva columna y usar la fórmula en esa columna. Mi pregunta es: ya tengo una lista de todos los nombres de columna que quiero, ¿hay alguna forma de crear nuevas columnas con los mismos nombres y simplemente reemplazar las columnas iniciales que hago con las columnas que pueden manejar el formato?
Esa pregunta puede ser realmente extraña, aquí hay algunos de mis scripts que manejan el análisis / la creación de columnas:
Lista = {};
// Iterar a través de las primeras filas de: Test_Result para obtener los nombres de pin
one_test_result_list = palabras (columna (dt2, "Test_Result") [1], "|");
Para (j = 1, j <= nitems (one_test_result_list) / 2, j ++,
Asignar (Lista, one_test_result_list [j * 2]);
);
// Hacer nuevas columnas de la lista de pin
Para (g = 1, g <= nitems (Lista), g ++,
dt2 << Nueva columna (Lista, Numérico, Continuo, Formato ("Mejor", 12));
);
// Iterar a través de las filas de: Test_Result (donde se almacena la cadena)
Para (i = 1, i <= nrows (dt2), i ++,
one_test_result_list = palabras (columna (dt2, "Test_Result") , "|");
Para (k = 1, k
// Almacena todos los resultados recién analizados en nuevos valores
Columna (dt2, Lista) = num (one_test_result_list [(k * 2) +1]);
);
);
Esto funciona perfectamente, me acabo de enterar de que todo está haciendo nuevas columnas ... Quiero que tengan los nombres de columna que ya les he dado, solo quiero poder ponerles el formato sin que cada valor se convierta en un punto. (Probé esto en una nueva columna y los valores realmente cambian correctamente ...)
Muchas gracias!
Re: Creando ColumnasLo siento, estaba redactando eso extrañamente. En mi cadena, ignoro el primer número (porque es inútil) y luego es un nombre seguido del valor para ese nombre. Creo que una nueva lista toma solo todos los nombres y luego la uso para rellenar todos los nuevos nombres de columna. Yo configuro las columnas como valores numéricos, e incluso las coloco con su valor numérico correspondiente como un número. Como se ve en este código adjunto (las líneas en negrita en particular):
// Hacer nuevas columnas de la lista de pin
Para (g = 1, g <= nitems (Lista), g ++,
dt2 << Nueva columna (Lista, Numérico, Continuo, Formato ("Mejor", 12));
);
Para (i = 1, i <= nrows (dt2), i ++,
one_test_result_list = palabras (columna (dt2, "Test_Result") , "|");
Para (k = 1, k
// Almacena todos los resultados recién analizados en nuevos valores
Columna (dt2, Lista) = num (one_test_result_list [(k * 2) +1]);
);
);
Aunque designo el valor como un número y la columna para contener un valor numérico, cada vez que realizo cualquier tipo de operación en esa columna (es decir, haciendo que la columna sea todos valores absolutos), los valores que están en esa columna se convierten en puntos . Pero si hago una nueva columna y tomo los valores en, digamos, la primera columna que creé, y establezco una fórmula para esa columna, se comporta correctamente y muestra la operación. Parece que necesito hacer el doble de columnas de lo que realmente necesito para almacenar inicialmente el valor, y luego otra columna para usar una fórmula. No puedo usar una fórmula en la primera columna que creo. La cosa es que quiero conservar los nombres de columna que asigné inicialmente. No sé por qué JMP no me permite realizar una operación en las nuevas columnas.
Re: Creando Columnas<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />No estoy seguro de entender completamente tu problema, pero " los valores numéricos que luego uso de esa cadena y lugar en cada columna son técnicamente un carácter, por lo que cuando trato de usar una fórmula en la columna, simplemente puntea todo "sugiere algunas cosas. . .
El tipo de datos de una columna JMP se puede definir como 'Numérico' o 'Carácter' para contener los datos del tipo requerido, y (a través del diálogo 'Información de la columna ...' o enviando el mensaje JSL 'myCol << DataType ( "Numérico") o myCol << DataType ("Character") ') debe configurar esto para que sea lo que desea. Cuando llena la columna con valores, puede convertir valores numéricos a caracteres (de caracteres a valores numéricos) usando 'Char ()' (usando 'Num ()'). Si usa 'Num ()' en un valor de texto que JMP no puede interpretar como un número, asignará un valor faltante (a '.').