Cómo escribir un comando en Formula-Character<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Me gustaría saber cómo escribir un comando viable utilizando la funcionalidad Fórmula-Carácter.
Por ejemplo, tengo una columna de datos de caracteres que tienen datos como nivelados de Clase 1.0 a Clase 9.0.
Me gustaría convertir esta información a otra columna que solo muestre 1.0 a 9.0, ¿cómo puedo usar la función de carácter de fórmula para escribir un comando para esto?
La otra solicitud que me gustaría saber es cómo puedo cambiar una columna de datos de caracteres a otra declaración en una nueva columna.
Por ejemplo, tengo una columna de caracteres de datos que muestra dulce, sabroso, agrio... y me gustaría cambiarla para que sea dulce-->Bin1, sabroso-->Bin2, agrio-->Bin3. ¿Cómo puedo usar el carácter de fórmula para convertir el dulce-->Bin1 en una nueva columna?
Gracias,
Re: Como escribir un comando en Formula-CharacterHola Bernie,
¡Lamento que esto no te funcione! Creo que pude haber elegido un nombre de columna ambiguo que creo que podría ser la fuente de la confusión. En el conjunto de datos adjunto, tengo una columna llamada "OriginalColumn" y el siguiente script hace referencia a esa columna en la función Word(). La función de palabra no toma ningún argumento para las palabras que está buscando, solo el número de palabra y la columna en la que buscar. ¡Fue mi error usar un nombre de columna de "Clase" cuando eso era lo que buscaba eliminar!Avíseme si el siguiente script funciona para la tabla adjunta. Si es así, debería poder cambiarlo para que funcione en cualquier tabla que desee cambiando ": OriginalColumn" para que coincida con el nombre de la columna en su tabla.
Julian
//Hacer una nueva columna
Tabla de datos actual () << Nueva columna ( "Solo número de clase" , Personaje ) ;
//detener la actualización de la tabla hasta que se realicen todos los cambios, bueno para tablas grandes
Tabla de datos actual () << Iniciar actualización de datos ;
//Aplicar cambios a cada fila
Por cada fila (
: ClassNumberOnly = Palabra ( 2 , :ColumnaOriginal )
) ;
// Fin de "Actualización de datos"
Tabla de datos actual () << Finalizar actualización de datos ;
Re: Como escribir un comando en Formula-CharacterHola Julián,
En realidad, me gustaría mantenerlo como un carácter en lugar de convertirlo en numérico.
Lo que solo me gustaría es deshacerme de la "Clase" de la "Clase 9.0" original, y mostrar solo "9.0".
Usé la palabra (2, Clase), pero no funcionó.
Gracias,
Re: Como escribir un comando en Formula-CharacterHola bernie426
Parece que desea que la columna resultante sea numérica, ¿no es así? Si es así, la sugerencia de Peter anterior es la forma correcta de manejar esto. Cuando extrae una parte de una cadena, permanece como una cadena, a menos que le diga a JMP que desea convertir la cadena en un número. Aquí hay un script completo con la función Num() envuelta alrededor de la función Word(), y también un cambio más para hacer que la nueva columna sea numérica cuando se crea.
¡Espero que esto funcione para usted!
Julian
//Hacer una nueva columna NUMERICA
Tabla de datos actual () << Nueva columna ( "Solo número de clase" , Numérico ) ;
//detener la actualización de la tabla hasta que se realicen todos los cambios, bueno para tablas grandes
Tabla de datos actual () << Iniciar actualización de datos ;
//Aplicar cambios a cada fila
//La siguiente función buscará una columna llamada "Clase"
//si los datos estan en una columna con otro nombre
//cambiar :Class para que sea cualquiera que sea el nombre de la columna, pero
//asegúrese de conservar : ya que eso le permite a JMP saber que usted es
//haciendo referencia a una columna.
//esta función también envuelve la función Word() en Num()
//que convertirá la salida del carácter en un número
//permitiendo que la columna resultante permanezca numérica
Por cada fila (
: ClassNumberOnly = número ( Palabra ( 2 , : Clase ) )
) ;
// Fin de "Actualización de datos"
Tabla de datos actual () << Finalizar actualización de datos ;
Re: Como escribir un comando en Formula-CharacterIntente usar la función NUM para convertir el número de cadena en un número real.
a = "Clase 9" ;
b = número ( palabra ( 2 , a )) ;
Re: Como escribir un comando en Formula-CharacterHola Julián,
Obtuve el script o la fórmula "Match" funcionando perfectamente, y me encanta.
Sin embargo, no puedo hacer que la función "Palabra" funcione ni en la fórmula ni en el script.
El caso que tengo es una columna existente que es Carácter de "Clase 1" a Clase 9, y me gustaría tener una nueva columna al lado que solo muestre el número (1 a 9) y todavía está en Formato de carácter/atributo.
Por lo tanto, según el script de Word() que escribió para mí como ejemplo, ¿necesitamos una información de entrada para la columna principal (Clase 1... Clase 9) y usamos la función Word()?
Gracias,
Bernie
Usar Words() para extraer solo los números
//Hacer una nueva columna
Tabla de datos actual () << Nueva columna ("ClassNumberOnly", Carácter);
//detener la actualización de la tabla hasta que se realicen todos los cambios, bueno para tablas grandes
Tabla de datos actual () << Comenzar actualización de datos;
//Aplicar cambios a cada fila
Por cada fila(
:ClassNumberOnly = Palabra( 2, :Clase )
);
// Fin de "Actualización de datos"
Tabla de datos actual () << Finalizar actualización de datos;
Re: Como escribir un comando en Formula-CharacterHola Bernie,
¡Me alegro de haber preguntado! Hay algunas formas en que puede abordar esto, dependiendo de si desea escribir una columna de fórmula o escribir los valores reales. Las diferentes circunstancias exigen uno u otro, por lo que he incluido métodos para ambos a continuación.
Para escribir los valores reales:
| Usando Word() para extraer solo los números |
|---|
//Hacer una nueva columna Tabla de datos actual () << Nueva columna ( "Solo número de clase" , Personaje ) ; //detener la actualización de la tabla hasta que se realicen todos los cambios, bueno para tablas grandes Tabla de datos actual () << Iniciar actualización de datos ; //Aplicar cambios a cada fila Por cada fila ( : ClassNumberOnly = Palabra ( 2 , : Clase ) ) ; // Fin de "Actualización de datos" Tabla de datos actual () << Finalizar actualización de datos ; |
| Usando Match() para recodificar |
|---|
//Hacer una nueva columna Tabla de datos actual () << Nueva columna ( "Recodificar atributo" , Personaje ) ; //detener la actualización de la tabla hasta que se realicen todos los cambios, bueno para tablas grandes Tabla de datos actual () << Iniciar actualización de datos ; //Aplicar cambios a cada fila Por cada fila ( : AttributeRecode = Fósforo ( : Atributo , "Sabroso" , "Papelera3" , "Dulce" , "Contenedor2" , "Agrio" , "Contenedor1" , : Atributo ) ) ; // Fin de "Actualización de datos" Tabla de datos actual () << Finalizar actualización de datos ; |
Para escribir una columna de fórmula:
| Usando Word() para extraer solo los números |
|---|
//Hacer la columna de formula Tabla de datos actual () << Nueva columna ( "Solo número de clase" , Personaje , Fórmula ( Palabra ( 2 , : Clase ) ) ) ;
|
| Usando Match() para recodificar |
|---|
//Hacer la columna de formula Tabla de datos actual () << Nueva columna ( "Recodificar atributo" , Personaje , Fórmula ( Fósforo ( : Atributo , "Sabroso" , "Papelera3" , "Dulce" , "Contenedor2" , "Agrio" , "Contenedor1" , : Atributo ) ) ) ;
|
¡Espero que esto ayude!
Julian
Re: Como escribir un comando en Formula-CharacterHola Julián,
Así que agradezco que hayas leído mi publicación inicial nuevamente. Sí, sería incluso mejor si hubiera una opción de secuencia de comandos, ya que la uso a diario.
Re: Como escribir un comando en Formula-Character¡De nada! Acabo de leer su publicación inicial nuevamente y se me ocurrió que podría haber estado buscando una solución de secuencias de comandos en lugar de una solución de fórmula de columna. Si ese es el caso, hágamelo saber y puedo ayudarlo a configurar esto a través de un script. Es posible que haya notado que en Col > Recode hay incluso una opción para que JMP escriba la recodificación como un script, por lo que comenzaría allí y podríamos adaptar el código para usar Word() para abordar su primera pregunta.
Julian
Re: Como escribir un comando en Formula-CharacterMuchas gracias por la información útil Julianan.
Bernie
Re: Como escribir un comando en Formula-CharacterHola bernie426 ,
Para extraer una parte de su columna, puede usar la función Word(), que toma dos argumentos: el primero es qué "palabra" extraer (ingresará un número aquí), y el segundo es la columna con el texto que desea extraer. Hay un tercer argumento opcional en el que puede especificar los delimitadores que separan las palabras, pero en su caso funcionará el valor predeterminado de un "espacio". Entonces, para usar esto, cree una nueva columna de fórmula con Word (2,: Clase) (donde: Clase es cualquier variable en la que estén almacenados sus datos originales).Por ejemplo (también en el conjunto de datos adjunto):

Esto tomará la segunda "palabra", que es lo que está después del primer espacio encontrado, por lo tanto, solo los números.
Para su segunda pregunta, usaría la función de coincidencia (a continuación). Puede escribirlo usted mismo o usar la utilidad de recodificación de columnas para escribirlo por usted. Para hacer esto último, seleccione la columna original, luego vaya a Cols > Recode. Especifique qué nuevos valores desea que tenga su variable, luego seleccione "Columna de fórmula" en lugar de "In situ".JMP te hará una nueva columna usando la función de coincidencia.

Podría usar Cols > Recode de la misma manera para su primera pregunta, pero si tiene muchos niveles, usar Word() será más rápido que especificar manualmente la recodificación.
He adjuntado un conjunto de datos de ejemplo con estas fórmulas.
¡Espero que esto ayude!
Julian