creando nuove colonne con un ciclo for con i nomi delle colonne e la formulaSto cercando di creare una tabella divisa da una tabella esistente e aggiungere nuove colonne nelle tabelle divise ciascuna con una formula basata sulle colonne che sono state divise. Tuttavia il codice crea le nuove colonne ma mi dà "Errori di valutazione della formula"
dt2 = Current Data Table();
// Create the split data table
dt2 = dt << Split(
Split By( :S ),
Split(
:Name( "Median(data)" )
),
Group( :L, :m, :C, :P, :z, :x ),
Remaining Columns( Drop All ),
Sort by Column Property
);
colname = {"B","C"};
colby = {"A","B"};
// Add new columns to the split data table
For( i = 1, i <= N Items( colname ), i++,
dt2 << New Column( colname[i]||"/"||colby[i],
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( column(colname[i]) / column(colby[i]) )
););Automazione e scriptingRi: creazione di nuove colonne con un ciclo for con nomi di colonne e formulaLa definizione della formula JMP non verrà valutata quando viene definita, ma solo quando viene eseguita.Pertanto, la formula deve essere presentata a JMP in una forma completamente definita.
Column( colname[i] ) / Column( colby[i] )
deve essere presentato a JMP come
Column( "B" ) / Column( "A" )
L'utilizzo della funzione Sostituisci consente l'espansione del codice come richiesto
// Add new columns to the split data table
For( i = 1, i <= N Items( colname ), i++,
Eval(
Substitute(
Expr(
dt2 << New Column( colname[i] || "/" || colby[i],
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Column( __colname__ ) / Column( __colby__ ) )
)
),
Expr( __colname__ ), colname[i],
Expr( __colby__ ), colby[i]
)
)
);Oggetto: creazione di nuove colonne con un ciclo for con nomi di colonne e formulaSto ancora ricevendo lo stesso errore, come di seguito
Column B/A Formula Interrupted
Cannot convert argument to a number [or matrix] 1 times At rows: 2 Operation: Divide, Column( "B" ) / /*###*/Column( "A" ) /*###*/
Formula evaluation errors have been ignored
Column C/B Formula Interrupted
Cannot convert argument to a number [or matrix] 1 times At rows: 2 Operation: Divide, Column( "C" ) / /*###*/Column( "B" ) /*###*/
Formula evaluation errors have been ignored
Ri: creazione di nuove colonne con un ciclo for con nomi di colonne e formulaProva a cambiare la funzione Column() nella funzione As Column()
Oggetto: creazione di nuove colonne con un ciclo for con nomi di colonne e formulaHa funzionato, grazie!