- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
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
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: JSL: Copy data table
Here's one way:
NamesDefaultToHere(1);
dt1 = Open("$SAMPLE_DATA/Big Class.jmp");
dt2 = Eval(dt1 << getScript);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: JSL: Copy data table
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: JSL: Copy data table
Here's one way:
NamesDefaultToHere(1);
dt1 = Open("$SAMPLE_DATA/Big Class.jmp");
dt2 = Eval(dt1 << getScript);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
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 ) );
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
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