Mostrar la posición de una letra como númeroHola,
Me gustaría contar la posición de una letra en un texto y mostrarla como un número. Solo tengo X como letras y quiero el número en una columna diferente. Los espacios también deben contarse.
texto:
XX X X
producción:
12 4 9
¿Cómo puedo hacer esto?
Gracias por su respuesta
Tabla de datossecuencias de comandosRe: Mostrar la posición de una letra como númeroMuchas gracias, ambas soluciones funcionaron bien.
Re: Mostrar la posición de una letra como númeroHola,
Como @jthi respondió, puede copiar y pegar el script anterior en el editor de fórmulas.Lo incluí como una columna de fórmula en la tabla a continuación (copie este script y péguelo en una ventana New Script para recrear la tabla), y también guardé la tabla en esta publicación.
New Table( "Show position of letter example table",
Add Rows( 1 ),
New Column( "text",
Character,
"Nominal",
Set Values( {"XX X X"} ),
Set Display Width( 87 )
),
New Column( "Output",
Character,
"Nominal",
Formula(
X_pos = {};
For( i = 1, i <= Length( :text ), i++,
If( Substr( :text, i, 1 ) == "X",
X_pos[i] = Char( i ),
X_pos[i] = " "
)
);
Concat Items( X_pos, "" );
),
Set Selected,
Set Display Width( 107 )
)
)Re: Mostrar la posición de una letra como númeroDebería poder crear una nueva columna y copiar y pegar @HadleyMyers solución directamente al editor de fórmulas (con la solución Contiene elemento () si es necesario):

Editar: esto espera que la columna se nombre como "texto"
Re: Mostrar la posición de una letra como númeroGracias por esta solución. Todavía no he trabajado con secuencias de comandos JMP. ¿Hay una manera fácil de agregar esto al script de mi tabla? ¿O construir la misma expresión en el editor de fórmulas?
Re: Mostrar la posición de una letra como númeroPara mí, Concat Items () parece agregar espacio adicional cuando no se proporciona un segundo argumento, por lo que es posible que deba usar Concat Items (X_pos, "")Re: Mostrar la posición de una letra como númeroHola,
Usar este script como una columna de fórmula debería hacer el trabajo:
X_pos = {};
For( i = 1, i <= Length( :text ), i++,
If( Substr( :text, i, 1 ) == "X",
X_pos[i] = Char( i ),
X_pos[i] = " "
)
);
Concat Items( X_pos );