Insertar variable de columna en la fórmulaHola,
Estoy tratando de agregar una secuencia de comandos a una tabla de datos que permitirá al usuario analizar una columna dada (: Nombre de archivo) mediante delimitadores que el usuario seleccionará mediante un cuadro de visualización (delim). Idealmente, la fórmula continuará analizando la columna: Nombre de archivo hasta que no quede nada para analizar. Un bloque de mi script está abajo. En él, creo una nueva columna (columna) para cada segmento analizado de: Nombre de archivo. Luego reviso la columna para ver si faltan valores y luego me detengo si toda la columna está vacía.
Mi problema es que no puedo obtener una columna para evaluar en la fórmula. Incluso he intentado usar SRA El truco de Eval (Parse (Eval Insert ())), pero no puedo hacerlo funcionar. ¿Hay alguna sugerencia? Estoy usando JMP11.
¡Gracias!
// Example script.
// Note: col = Column( "Column 442" );
delim = "-";
i = 1;
j = 1;
While( j > 0,
j = 0;
col = dt << New Column();
col << Data Type( Character, Nominal );
col << Set Formula( Word( i, :File Name, delim ) );
For Each Row( If( Is Missing( :Column 442 ) == 0, j = j + 1 ) ); // This works.
Eval( Parse( Eval Insert( "For Each Row( If( Is Missing(:Column 442) == 0, j = j + 1 ) )" ) ) ); // This works.
Eval( Parse( Eval Insert( "For Each Row( If( Is Missing(^col^) == 0, j = j + 1 ) )" ) ) ); // This does not work.
Eval( Parse( Eval Insert( "For Each Row( If( Length(^col^) != 0, j = j + 1 ) )" ) ) ); // This does not work.
i = i + 1;
);
Re: Insertar variable de columna en fórmula<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Gracias MS!
Re: Insertar variable de columna en fórmulaTambién recuerda que: col se refiere a una columna como un todo. Dentro de un bucle For Each Row, debe usar la notación [] para hacer referencia a la celda actual (una de las muchas razones para no usar For Each Loops).
Re: Insertar variable de columna en fórmulaLa variable columna Es una referencia a una columna. Pero en un bucle ForEachRow () necesitamos acceder no a la columna sino a sus valores. Ambas alternativas a continuación deberían funcionar en su código. Note el índice vacío [] en el segundo ejemplo.
Evaluar ( Analizar gramaticalmente ( Eval Insert ( "Para cada fila (Si (falta (como columna (^ col ^)) == 0, j = j + 1))" ))) ;
Evaluar ( Analizar gramaticalmente ( Eval Insert ( "Para cada fila (Si (falta (^ col ^ []) == 0, j = j + 1))" ))) ;
Re: Insertar variable de columna en fórmulaok, no voy a intentar entender su código, pero con respecto a la sintaxis, usted dice que lo siguiente funciona:
Evaluar ( Analizar gramaticalmente ( Eval Insert ( "
Para cada fila (Si (falta ((Columna 442) == 0, j = j + 1));
" ))) ;
El contenido dentro del patrón de Eval es una cadena, por lo que la variable que colocas dentro de ^ ... ^ actuará como una cadena, por lo que para generalizarla debes hacer lo siguiente:
colName = columna << Obtener nombre ; // por ejemplo, colName = "Column 442"
Evaluar ( Analizar gramaticalmente ( Eval Insert ( "
Para cada fila (Si (falta) (: ^ cName ^) == 0, j = j + 1));
" ))) ;