Salut tout le monde,
J'ai écrit un script dans lequel je vais créer plusieurs colonnes dans la table JMP (disons table-1) sur la base d'un calcul. Maintenant, je souhaite remplir quelques lignes et colonnes sélectionnées du tableau 1 dans une autre table JMP (disons le tableau 2). J'ai besoin d'aide pour remplir le deuxième tableau avec les lignes et colonnes sélectionnées.
Veuillez suggérer.
Salutations,
Dilip
Voici quelques façons de faire ce que vous demandez.La première méthode, utilisant la plateforme de mise à jour, est bien plus efficace que la mise à jour de cellule à cellule, mais elles fonctionnent toutes les deux bien et chacune a sa place là où vous voudriez utiliser chaque technique.
Names Default To Here( 1 );
dt1 = Open( "$SAMPLE_DATA/big class.jmp" );
dt2 = Open( "$SAMPLE_DATA/big class families.jmp" );
// Add a new columns
dt1 << New Column( "Height, Weight ratio", formula( :weight / :height ) );
dt1 << New Column( "Age, Height ratio", formula( :height / :Age ) );
// Add the Height, Weight ratio to the dt2 data table, for only the
// females, using a simple subset and a join
dt1 << select where( :sex == "F" );
dtSubset = dt1 << subset(
private,
selected rows( 1 ),
columns( {"name", "Height, Weight ratio"} )
);
dt2 << Update( With( dtSubset ), Match Columns( :name = :name ) );
Close( dtSubset, nosave );
// Add the Age, Height ratio to the dt2 data table for only the
// 13 year olds, using cell by cell processing
dt2 << New Column( "Age, Height ratio" );
For( i = 1, i <= N Rows( dt1 ), i++,
If( dt1:age[i] == 13,
foundRow = dt2 << get rows where( dt1:name[i] == dt2:name & dt2:age == 13 );
If( N Rows( foundRow ) == 1,
theRow = foundRow[1];
dt2:Name( "Age, Height ratio" )[theRow] = dt1:Name( "Age, Height ratio" )[i];
);
)
);
Il existe également d’autres méthodes qui peuvent être utilisées.Je vous suggère de lire le Guide de script pour avoir une bonne idée de la variété des options disponibles.
Aide==>Livres==>Guide de script