Mostrar la posición de una letra como númeroHola,
Me gustaría que la posición de una letra en un texto se contara y se mostrara 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
salida:
12 4 9
¿Cómo puedo hacer esto?
Gracias por su respuesta
Tabla de datosScriptingRe: mostrar la posición de una letra como númeroHola,
Usar este script como 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 );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úmeroGracias por esta solución Todavía no he trabajado con secuencias de comandos JMP. ¿Existe una manera fácil de agregar esto al script de mi tabla? ¿O crear la misma expresión en el editor de fórmulas?
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 correcció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ú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 )
)
)