Comment multiplier toutes les valeurs de données par un multiplicateur pour chaque colonne qui se trouve dans une autre table, par nom de colonne ? (Le tableau des multiplicateurs a une colonne avec les noms des colonnes et une deuxième colonne avec les multiplicateurs à appliquer à chaque colonne de l'autre tableau. Toutes les colonnes n'ont pas de multiplicateur.) Je peux aller jusqu'à ajouter le multiplicateur à la table de données dans sa propre ligne, mais je suis alors bloqué. Je sais que je peux le faire rapidement en externe, mais je suis sûr qu'il existe un moyen de le faire dans JMP.
Merci! Je l'ai transmis au client interne. Je suppose que la section centrale dtConfig ne serait pas nécessaire, car la table des multiplicateurs existe déjà. (Vous venez de créer une nouvelle table de multiplicateurs à utiliser sur une grande classe à titre d'exemple.) Dans la boucle For, il remplacerait simplement dtConfig par le nom de sa table de multiplicateurs. Est-ce que ça te paraît correct? Merci encore!
Voici un exemple simple de modification des valeurs dans la table de données Big Class, basée sur une table de données de configuration telle que vous la décrivez.
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 );
)
);