Updating Part of a Data Table by Row and Column Using JSLHi, sorry, I've been Googling for hours now and I just don't know what to do. I don't know how to formulate my question though I will try my best, it's just, really exasperating and getting to me now, finally, how such a simple thing can be so complicated. I see that JMP is intended for some things and not others, after all. In Python this would be very easy for me. But I guess it's all about experience. Not to add insult to injury.
I wish to replace a subset of my data table with new data. I have the target rows and target column and the old table and the new data. What is the syntax to do this?
Thank you.
Michael
Advanced Statistical ModelingAutomation and ScriptingConsumer and Market ResearchData AccessData Blending and CleanupMass CustomizationRe: Updating Part of a Data Table by Row and Column Using JSLHi Michael,
I've attached a script I wrote many moons ago to illustrate some commonly-used syntax for table operations. When you're checking it out, turn on your log so you can see results, and run each line one at a time. If you go out of order it may not work properly as sometimes I do things that rely on previously executed code.
In your specific case, you can replace table contents using subscripting... have a look at this script, running things line-by-line
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] = .;
Re: Updating Part of a Data Table by Row and Column Using JSLHere are 3 ways to update data in one table, with values from another 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];