cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Check out the JMP® Marketplace featured Capability Explorer add-in
Choose Language Hide Translation Bar
ERoderz
Level III

Split Table Function not working as intended...

I'm trying to split DT-2 (attached) - Split by: Marker, Split Columns: Results. I'm wanting to "keep all" remaining columns.

 

The problem I am running into is that some markers have more rows than others. So when I split, it is combining the next "Lot" to backfill the other markers that have less than the maximum in the table.

 

For example, there should only be 3 values for CD19+ for lot 7587082, but after the split, it is showing 6, absorbing the values of the next lot, 7587083.

 

How do I get this to function properly? Am I missing something? Ideally I would like this to be in a script... which currently looks like this (all of script not shown, just the split):

dt3 = dt2 << Split( Split By( :Marker ), Split( :Results ));

 

Any and all help will be greatly appreciated!!!

1 ACCEPTED SOLUTION

Accepted Solutions
txnelson
Super User

Re: Split Table Function not working as intended...

Try adding Lot Number and Instrument as Group variables
Jim

View solution in original post

5 REPLIES 5
txnelson
Super User

Re: Split Table Function not working as intended...

Try adding Lot Number and Instrument as Group variables
Jim
ERoderz
Level III

Re: Split Table Function not working as intended...

That did it. Thanks txnelson!

Group( :Lot Number, :Instrument )

CB21C68
Level I

Re: Split Table Function not working as intended...

I'd like to revive this old question.

 

Can you please explain why this behavior is occurring?

 

I've run into the same issue and it's counterintuitive to me why you have to group by some variables instead of JMP just doing that automatically when you keep the columns?

txnelson
Super User

Re: Split Table Function not working as intended...

The Split Platform is a generic platform.  It does not read any information from the data table, as to grouping etc.  It requires the user to fill in the Split By, Split Columns and Group columns.

Jim
CB21C68
Level I

Re: Split Table Function not working as intended...

I guess I'm not understanding why if you select the keep the columns options it will fill the kept columns with permuted data that does not correspond correctly to the split data form the original rows of the original table. In what possible situation would this default behavior be useful?

 

For example why wouldnt it go through the original table row by row and after the split generate new table with a corresponding row for each original one but just with the selected column split out.

 

The way it behaves for me is that while it's doing the splitting it ends up with permuted data in the kept columns.

 

The only way to keep the data correctly associated row by row is to include all of the kept columns in the grouping.

 

I'd love to upload a datatable here as an example but obviously my company does not allow us to share any of the private data.

 

*edit: I recoded the table so I'm going to upload it here.

 

This table has columns A through G.

I want to split Col G by Col B while keeping all of the lables in col A,C,D,E correctly associated with the corresponding data in the split col G.

 

Running the following script generates a messed up table with the entries in col A,C,D,E not corresponding to their relative values from the split col G.

Data Table( "example-table" ) << Split( Split By( :B ), Split( :G ) )

This generates a correct result I think:

Data Table( "example-table" ) << Split(
	Split By( :B ),
	Split( :G ),
	Group( :A, :C, :D, :E ),
	Sort by Column Property
)

But I'm still not understanding why anything needs to be grouped in the 1st place:

 

If I run the following script it's showing me that the original table only has one row for a given combination of A, B, C, D, E, so no grouping should be required right?

 

Data Table( "example-table" ) << Summary(
	Group( :A, :C, :D, :E, :B ),
	Freq( "None" ),
	Weight( "None" )
)