cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • Learn how to build custom Python data connectors and further customize JMP’s Data Connector Framework with the Python Data Connector Demo, available now in the JMP Marketplace!
  • See how to create experiments to support product design and ID useful product features. Register for June 12 webinar, 2pm US Eastern Time.

Discussions

Solve problems, and share tips and tricks with other JMP users.
Choose Language Hide Translation Bar
JPKO
Level III

JSL: Copy data table

This is probably really simple, but I've been through the scripting guide and I've searched the community discussions without any luck so here goes:

 

I'm trying to copy a comple data table with values, column properties and all. Is there a command for this? I tried to hack something together:

dt=current data table();

colNames = dt << Get Column Names( String );

ndt = New Table("Plotting Data", /*invisible,*/);

For (i=1, i <= NCols(dt), i++,
	New Column(colNames[i]);
	colProps = Column(dt, colNames[i]) << Get Column Properties;
	Column( ndt, colNames[i]) << Add Column Properties( colProps );
);

ndt << Add Rows(NRows(dt));
For (j=1, j <= NCols(dt), j++,
	colVals = Column(dt, colNames[j]) << Get values;
	Column(ndt, colNames[j]) << Set values( colVals );
);

However besides being overly complicated for something rather simple, it won't copy character data because data type is apparently not included in column properties.

 

 

Thanks,

Johan

1 ACCEPTED SOLUTION

Accepted Solutions
ian_jmp
Level X

Re: JSL: Copy data table

Here's one way:

NamesDefaultToHere(1);
dt1 = Open("$SAMPLE_DATA/Big Class.jmp");
dt2 = Eval(dt1 << getScript);

View solution in original post

4 REPLIES 4
JPKO
Level III

Re: JSL: Copy data table

BTW sorry for the invisible command that's blocked out. It's not important for my question.
ian_jmp
Level X

Re: JSL: Copy data table

Here's one way:

NamesDefaultToHere(1);
dt1 = Open("$SAMPLE_DATA/Big Class.jmp");
dt2 = Eval(dt1 << getScript);

Re: JSL: Copy data table

Another way is to subset the table with all rows and all columns.

dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
dt_copy = dt << Subset( All rows, Selected columns only( 0 ) );
Justin
ThomasDickel
Level III

Re: JSL: Copy data table

Hi, 

we just ran into an error using the proposed solution "Eval( dt << Get script)" while using two nested "For each row" commands.

Replacing this with the "dt<< Subset" made the function work. So there must be a difference between these two commands.

 

Best Regards,

Thomas

 

 

Recommended Articles