Cómo eliminar comas invertidas en un nombre variable en una fórmulaHola,
Me gustaría elegir dos columnas y hacer la fórmula. Sin embargo, las variables en la fórmula tienen "" alrededor del nombre y, por lo tanto, no funciona. ¿Alguna sugerencia?
dt = Current Data Table();
win = New Window( "Clean False Zeroes",
<<MODAL></MODAL>
Re: Cómo eliminar comas invertidas en un nombre variable en una fórmula¡Oye! Funciona si uso el nombre expr. Gracias a los dos por su ayuda. Estoy realmente feliz.Re: Cómo eliminar comas invertidas en un nombre variable en una fórmulaGracias a los dos por sus sugerencias, sin embargo, ninguno de ellos funciona para mí. Para aclarar, hice un archivo de prueba con los datos en la columna A, Estado en la columna B. Luego hice una tercera columna con la fórmula incluida. Usted puede ses que funcione. Si ejecuto el script para hacer lo mismo (no sé qué columnas quiero limpiar para los ceros), verá en la columna 4 que no funciona bien. Espero que todo tenga sentido.
dt = Current Data Table();
win = New Window( "Clean False Zeroes",
<<MODAL></MODAL>
Re: Cómo eliminar comas invertidas en un nombre variable en una fórmulaCreo que quieres hacer algo como esto:
dt << new column("check",
formula(eval(evalexpr(If(Is Missing(expr(nameexpr(yvar))),.,expr(nameexpr(xvar))) )))
);
The selected names are in the scriptLos nombres seleccionados están en el guión.
Sin el trabajo extra, obtienes algo como esto
The variable names are in the scriptLos nombres de las variables están en el script.
Lo que solo funciona siempre que yvar mantenga: nombre y xvar mantiene: altura. Ese no será el caso si guarda la tabla, cierre y reinicie JMP, luego abra la tabla.
¿Qué hace?
evaluar () es una señal para fórmula Para evaluar su argumento. Normalmente no querrá eso porque normalmente la expresión que le da a fórmula () no debe evaluarse hasta que la columna necesite ejecutarlo. Así que el primer código que se ejecuta es evalexpr () que devolverá una expresión reescrita para la columna de fórmula. Evalexpr busca en su argumento por expr () funciones que puede evaluar y reemplazar con el resultado; Hay dos de ellos. Entonces lo que se evalúa es el NombreExpr función, que devuelve el nombre de su argumento ... el argumento de xval y su nombre es: altura.
Re: Cómo eliminar comas invertidas en un nombre variable en una fórmulaTambién basado en la entrada de Craige (gracias
dt = Current Data Table();
cd=column Dialog(
Title(" Clean False Zeroes "),
xcols= ColList(" Numeric ", MinCol( 1 ), DataType("Numeric"), modeling type("Continuous") ),
ycols= ColList(" Character ", MinCol( 1 ), DataType("Character"), modeling type("Nominal") ),
);
xvar =cd["xcols"];
yvar =cd["ycols"];
xvar=xvar[1];
yvar=yvar[1];
dt << new column("check",, formula(If(Is Missing(yvar),.,xvar) ) );
Re: Cómo eliminar comas invertidas en un nombre variable en una fórmulaNecesitaríamos ver más JSL que está creando el script para dar una mejor respuesta, pero
{"LOA (QC1007AI),%"}
es una lista de una cadena entre comillas. (Los corchetes forman una lista). Puede sacar el elemento de la lista y estar un poco más cerca.
colNames = {"LOA (QC1007AI),%"};
theColumnName = colnames[1];
print(theColumnName);
Tendrá que hacer una columna del nombre de la columna para la mayoría del uso.
col = column( dt, theColumnName );
la función de columna buscará el nombre en la tabla de datos y devolverá la columna.
Creo que puede haber usado una función que devuelve los nombres de las columnas en lugar de una función que devuelve las columnas. Hay un buen post http://www.pega-analytics.co.uk/blog/column-references/ discutiendo algunos de estos temas.
Re: Cómo eliminar comas invertidas en un nombre variable en una fórmulaHola gianpaolo_polsi,
Gracias por el script, creo que puedo usarlo para otros propósitos, sin embargo, no resuelve mi problema: Si (falta) ({"Estado (LOA)"}),
.,
{"LOA (QC1007AI),%"}
)
No entiendo por qué tengo estas "" marcas en mi fórmula cuando lo escribo.Re: Cómo eliminar comas invertidas en un nombre variable en una fórmulael subrayado puede ser una mejor opción que los dos puntos porque los dos puntos son un operador.
Re: Cómo eliminar comas invertidas en un nombre variable en una fórmulaHola sop
Intente este código en la tabla de datos antes de aplicar las fórmulas.
// code to replace any special JMP character with single char " : "
For(i = 1, i <= N Col(dt), i++,
Column(dt, i) << set name(Regex(Column(dt, i) << get name, "\W", ":", GLOBALREPLACE))
);