Re: Reemplazar caracteres en la cadenaLas cuerdas parecen seguir el mismo patrón. Tal vez use la función de palabras () con un espacio o " como separador. Luego use concatitems() para volver a armarlo.

Re: Reemplazar caracteres en la cadenaRegex es otra opción
Regex(:Results, "(BIN = \!".+\!") (\d+)(\!".+)", "\1 " || Char(:Count) || "\3")
pero en este caso usaría Words() + Concat Items() como sugirió Craige (si el patrón es siempre el mismo)
Re: Reemplazar caracteres en la cadenaGracias Craig y Jarmo
Re: Reemplazar caracteres en la cadenaCreo que el problema es con esta línea.
x[4] = Char( arra[binxx[j]] );
Modificaría el ciclo para recorrer las filas en lugar de una matriz asociativa + filas:
Names Default To Here(1);
dt = Current Data Table();
/// Get list of all the bins
binxx = Associative Array(:Bins[23 :: N Rows(dt)]) << Get Keys;
delcols = {"", " ", "}"};
/// Remove garbage values
For(i = 1, i <= N Items(delcols), i++,
Remove From(binxx, As List(Loc(binxx, delcols[i])));
);
///Get rows where Bins column contains BIN =
rows = dt << get rows where(Contains(:Bins, "BIN = "));
total = {};
//Loop to calculate the count of each bins
For(i = 1, i <= N Items(binxx), i++,
Insert Into(total, N Items(dt << get rows where(:Bins == binxx[i])))
);
//create array to store bin and counts
arra = Associative Array(binxx, total);
//loop to modify the character count in the table
For(i = 1, i <= N Items(rows), i++,
x = Words(:Bins[rows[i]]);
curbin = Substitute(x[3], "\!"", "");
If(Contains(arra, curbin),
x[4] = Char(arra[curbin]);
:Bins[rows[i]] = Concat Items(x);
,
continue();
);
);Re: Reemplazar caracteres en la cadenamuchas gracias jarmo
Re: Reemplazar caracteres en la cadena@jthi
Usé la lógica de Cragis para actualizar el conteo en la cadena, pero no reemplaza la cadena de conteo correcta. No estoy seguro de lo que estoy haciendo mal. ¿Puedes echarle un vistazo a mi código?
Asigna conteos incorrectos
Aquí está el código:
dt = Current Data Table();
/// Get list of all the bins
binxx = Associative Array( :Bins[23:: N Rows( dt )] ) << Get Keys;
delcols = {"", " ", "}"};
/// Remove garbage values
For( i = 1, i <= N Items( delcols ), i++,
Remove From( binxx, As List( Loc( binxx, delcols[i] ) ) );
);
///Get rows where Bins column contains BIN =
rows = dt << get rows where( Contains( :Bins, "BIN = " ) );
total = {};
//Loop to calculate the count of each bins
For( i = 1, i <= N Items( binxx ), i++,
Insert Into( total, N Items( dt << get rows where( :Bins == binxx[i] ) ) )
);
//create array to store bin and counts
arra = Associative Array( binxx, total );
//loop to modify the character count in the table
For( j = 1, j <= N Items( binxx ), j++,
For( i = 2, i <= N Items( rows ), i++,
If( Contains( arra, Substr( :Bins[i], 8, 1 ) ),
x = Words( :Bins[rows[i]] );
x[4] = Char( arra[binxx[j]] );
:Bins[rows[i]] = Concat Items( x );
)
)
);
Reemplazar caracteres en la cadenaHola comunidad JMP,
Estoy tratando de escribir un código jsl que tomaría una columna con una cadena y, en cada fila, reemplazaría el conteo con los valores en la columna de conteo. Los resultados finales deberían parecerse a los de la columna Resultados
¿Alguna sugerencia?
Automatización y secuencias de comandos