Come faccio a moltiplicare tutti i valori dei dati per un moltiplicatore per ogni colonna che si trova in un'altra tabella, per il nome della colonna? (La tabella dei moltiplicatori ha una colonna con i nomi delle colonne e una seconda colonna con i moltiplicatori da applicare a ciascuna colonna nell'altra tabella. Non tutte le colonne hanno un moltiplicatore.) Posso arrivare fino ad aggiungere il moltiplicatore alla tabella dei dati nella sua stessa riga, ma poi sono bloccato. So che posso farlo rapidamente esternamente, ma sono sicuro che c'è un modo per farlo in JMP.
Grazie! L'ho passato al cliente interno. Presumo che la sezione centrale dtConfig non sarebbe necessaria, poiché la tabella dei moltiplicatori esiste già. (Stavi solo creando una nuova tabella dei moltiplicatori da usare su una classe grande come esempio.) Nel ciclo For avrebbe semplicemente sostituito dtConfig con il nome della sua tabella dei moltiplicatori. Suona bene? Grazie ancora!
Ecco un semplice esempio di modifica dei valori nella tabella di dati Big Class, basata su una tabella di dati di configurazione come descrivi.
Names Default To Here( 1 );
// Open Data Table: big class.jmp
// → Data Table( "big class" )
dt = Open( "$SAMPLE_DATA/big class.jmp" );
dtConfig = New Table( "Config",
New Column( "Name", character, values( {"age", "height", "weight"} ) ),
New Column( "multiplier", values( {3, ., 2} ) )
);
dtColNames = dt << get column names( string );
For( i = 1, i <= N Rows( dtConfig ), i++,
If( Contains( dtColNames, dtConfig:Name[i] ) & Is Missing( dtConfig:multiplier[i] ) == 0,
temp = Column( dt, dtConfig:Name[i] ) << get values;
temp = temp :*</img> dtConfig:multiplier[i];
Column( dt, dtConfig:Name[i] ) << set values( temp );
)
);