Inserisci variabile di colonna in formulaCiao,
Sto cercando di aggiungere uno script a una tabella di dati che consentirà all'utente di analizzare una determinata colonna (Nome file) in base a delimitatori che l'utente selezionerà tramite una casella di visualizzazione (delim). Idealmente, la formula continuerà ad analizzare la colonna: Nome file fino a quando non viene lasciato nulla da analizzare. Un blocco del mio script è sotto. In esso, creo una nuova colonna (col) per ciascun segmento analizzato di: Nome file. Poi controllo col per i valori mancanti e poi interrompo se l'intera colonna è vuota.
Il mio problema è che non riesco a ottenere risultati da valutare nella formula. Ho persino provato a usare SIGNORINA Il trucco Eval (Parse (Eval Insert ())), ma non riesco a farlo funzionare. Ci sono dei suggerimenti? Sto usando JMP11.
Grazie!
// 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;
);
Ri: inserire la variabile di colonna in formula<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Grazie MS!
Ri: inserire la variabile di colonna in formulaRicorda inoltre che: col si riferisce a una colonna nel suo complesso. All'interno di un ciclo For For Row è necessario utilizzare la notazione [] per fare riferimento alla cella corrente (una delle molte ragioni per non utilizzare For Each Loops!).
Ri: inserire la variabile di colonna in formulaLa variabile col è un riferimento a una colonna. Ma in un ciclo ForEachRow () dobbiamo accedere non alla colonna ma ai suoi valori. Entrambe le alternative qui sotto dovrebbero funzionare nel tuo codice. Nota l'indice vuoto [] nel secondo esempio.
Eval ( analizzare ( Eval Insert ( "Per ogni riga (Se (Manca (come colonna (^ col ^)) == 0, j = j + 1))" ))) ;
Eval ( analizzare ( Eval Insert ( "Per ogni riga (If (Is missing (^ col ^ []) == 0, j = j + 1))" ))) ;
Ri: inserire la variabile di colonna in formulaok non cercherò di capire il tuo codice, ma per quanto riguarda la sintassi, tu dici che i seguenti lavori:
Eval ( analizzare ( Eval Insert ( "
Per ogni riga (Se (Manca (: colonna 442) == 0, j = j + 1));
" ))) ;
Il contenuto all'interno del pattern Eval è una stringa, quindi la variabile che inserisci all'interno di ^ ... ^ si comporterà come una stringa in modo da generalizzarlo in modo tale che qualcosa come il seguente
colName = col << Ottieni il nome ; // eg colName = "Column 442"
Eval ( analizzare ( Eval Insert ( "
Per ogni riga (Se (Manca (: ^ cName ^) == 0, j = j + 1));
" ))) ;