Mise à jour d'une partie d'une table de données par ligne et colonne à l'aide de JSLSalut, désolé, je fais des recherches sur Google depuis des heures maintenant et je ne sais tout simplement pas quoi faire. Je ne sais pas comment formuler ma question même si je ferai de mon mieux, c'est juste, vraiment exaspérant et cela m'arrive enfin, enfin, à quel point une chose aussi simple peut être si compliquée. Je vois que JMP est destiné à certaines choses et pas à d'autres, après tout. En Python, ce serait très facile pour moi. Mais je suppose que tout est une question d'expérience. Ne pas ajouter l'insulte à la blessure.
Je souhaite remplacer un sous-ensemble de ma table de données par de nouvelles données. J'ai les lignes cibles et la colonne cible et l'ancienne table et les nouvelles données. Quelle est la syntaxe pour faire cela?
Merci.
Michael
Tableau de donnéesScriptingRe: mise à jour d'une partie d'une table de données par ligne et colonne à l'aide de JSLVoici 3 façons de mettre à jour les données dans une table, avec les valeurs d'une autre table.
Names Default To Here( 1 );
// Open Data Table: big class.jmp
// → Data Table( "big class" )
Open( "$SAMPLE_DATA/big class.jmp" );
// Create a table with values to be input
// into the big class table
New Table( "Using Update",
New Column( "Name", character, values( {"JANE", "TIM", "ALICE"} ) ),
New Column( "Height", values( {58, 69, 64} ) ),
New Column( "Weight", values( {88, 100, 120} ) )
);
// Wait for a short time to be able to see the two
// data tables before combining them
Wait( 5 );
// Update data tables
Data Table( "big class" ) << Update( With( Data Table( "Using Update" ) ), Match Columns( :name = :Name ) );
// Update a block of data into the data table
// Create a table to get values from
New Table( "Just Data",
New Column( "A", values( {100, 101, 102, 103} ) ),
New Column( "B", values( {90, 91, 92, 93} ) )
);
// Wait for a short time to be able to see the two
// data tables before combining them
Wait( 5 );
dt = Data Table( "big class" );
dt2 = Data Table( "Just Data" );
dt[3 :: 6, 4 :: 5] = dt2[1 :: 4, 1 :: 2];
// One last simple way to move data
dt:age[2] = dt2:a[4];Re : Mise à jour d'une partie d'un tableau de données par ligne et colonne à l'aide de JSLSalut michael,
J'ai joint un script que j'ai écrit il y a plusieurs lunes pour illustrer une syntaxe couramment utilisée pour les opérations de table. Lorsque vous le vérifiez, activez votre journal pour voir les résultats et exécutez chaque ligne une par une. Si vous êtes en panne, cela peut ne pas fonctionner correctement car parfois je fais des choses qui reposent sur du code précédemment exécuté.
Dans votre cas particulier, vous pouvez remplacer le contenu d'une table à l'aide d'un indice... jetez un œil à ce script, exécutant les choses ligne par ligne
names default to here(1);
//create a 10x10 table of random integers between 1 and 20
dt = As Table( J( 10, 10, Random Integer( 1, 20 ) ) );
//replace column 1 with fibonacci numbers... note 0th row means ALL rows
//note that ` is the transpose operator.
dt[0, 1] = (Round( 1 / Sqrt( 5 ) * ((1 + Sqrt( 5 )) / 2) ^ (1 :: 10) ))` ;
//replace a subbloc of the table with numbers 81-100 in a 4x5 shape
dt[3::6, 4::8] = shape(81::100, 4);
//set a subbloc to all zeros
dt[8::10, 2::4] = 0;
//store a cell's value in a variable
x = dt[2,3];
//store a subbloc in a matrix
mat = dt[4::6, 0];
//set the whole table to missing
dt[0,0] = .;