cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • See how to interactively organize and restructure data for analysis. Register for May 29 webinar, 2pm US ET.

Discussions

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

Recode Multiple Column Group Name with jsl

I have column groups that needed frequent recoding. It works just by copying the enhanced log but how do I combine them together so that the code is less clunky?

// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );


// Change column name: name → Student's name
Data Table( "Big Class" ):name << Set Name( "Student's name" );


// Change column name: age → Student's age
Data Table( "Big Class" ):age << Set Name( "Student's age" );
1 REPLY 1
txnelson
Super User

Re: Recode Multiple Column Group Name with jsl

You can use the Column Name Recode

     Cols=>Column Names=>Recode Column Names....

If you do it once, you will see the JSL in the log as to what the JSL was that will create recodes

// Recode column names
Local( {dt = Data Table( "Big Class" ), names},
	names = Recode(
		dt << Get Column Names( String ),
		{Map Value(
			_rcOrig,
			{"age", "s age", "height", "s height", "name", "s name", "sex", "s sex",
			"weight", "s weight"},
			Unmatched( _rcNow )
		)}
	);
	For Each( {name, i}, names, Column( dt, i ) << Set Name( name ) );
);

It is also pretty easy to get a list of column names, and from that, make names changes across all of the columns.

Names Default To Here( 1 );
dt = Current Data Table();

nameList = dt << get column names( string );

For Each( {col}, nameList,
	Column( col ) << set name( "Student's " || col )
);
Jim

Recommended Articles