cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • JMP will suspend normal business operations for our Winter Holiday beginning on Wednesday, Dec. 24, 2025, at 5:00 p.m. ET (2:00 p.m. ET for JMP Accounts Receivable).
    Regular business hours will resume at 9:00 a.m. EST on Friday, Jan. 2, 2026.
  • We’re retiring the File Exchange at the end of this year. The JMP Marketplace is now your destination for add-ins and extensions.

Discussions

Solve problems, and share tips and tricks with other JMP users.
%3CLINGO-SUB%20id%3D%22lingo-sub-423538%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9AJMP%2016%EF%BC%9A%E4%BD%BF%E7%94%A8%E7%9B%B8%E5%B0%8D%E5%BC%95%E7%94%A8%E4%BD%BF%E7%94%A8%E5%85%AC%E5%BC%8F%E6%B7%BB%E5%8A%A0%E5%88%97%E7%9A%84%E8%85%B3%E6%9C%AC%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-423538%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%E8%AC%9D%E8%AC%9D%E9%A6%AC%E5%85%8B%EF%BC%81%20%E5%B7%A5%E4%BD%9C%E8%B5%B7%E4%BE%86%E5%BE%88%E6%9C%89%E9%AD%85%E5%8A%9B%EF%BC%81%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%E5%81%9A%E4%BA%86%E4%B8%80%E4%BA%9B%E8%AA%BF%E6%95%B4%EF%BC%8C%E6%8A%8A%E5%AE%83%E7%95%99%E5%9C%A8%E9%80%99%E9%87%8C%E4%BB%A5%E5%82%99%E5%B0%87%E4%BE%86%E5%8F%83%E8%80%83%E3%80%82%20%E5%A4%9A%E8%AC%9D%EF%BC%81%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3ENames%20Default%20to%20Here(%201%20)%3B%0A%0A%2F%2F%20mock%20up%20user%20data%20table%0Adt%20%3D%20New%20Table(%20%22Mock%20Up%22%20)%3B%0AFor(%20c%20%3D%201%2C%20c%20%26lt%3B%206%2C%20c%2B%2B%2C%0A%20col%20%3D%20dt%20%26lt%3B%26lt%3B%20New%20Column(%20%22My%20Column%20%22%20%7C%7C%20Char(%20c%20)%2C%20Numeric%2C%20Continuous%20)%3B%0A%20col%20%26lt%3B%26lt%3B%20Set%20Values(%20J(%2025%2C%201%2C%20Random%20Normal(%2080%2C%205%20)%20)%20)%3B%0A)%3B%0Ay%20%3D%20dt%20%26lt%3B%26lt%3B%20Get%20As%20Matrix%3B%0Acol%20%3D%20dt%20%26lt%3B%26lt%3B%20New%20Column(%20%22Total%22%2C%20Numeric%2C%20Continuous%20)%3B%0Acol%20%26lt%3B%26lt%3B%20Set%20Values(%20y%20*%20J(%205%2C%201%2C%201%20)%20)%3B%0A%0A%2F%2F%20solution%0Adt%20%3D%20Current%20Data%20Table()%3B%0Atotal%20%3D%20Column(%20N%20Col(%20dt%20)%20)%20%26lt%3B%26lt%3B%20Get%20As%20Matrix%3B%0Alast%20c%20%3D%20N%20Col(%20dt%20)%3B%0AFor(%20c%20%3D%201%2C%20c%20%26lt%3B%20last%20c%2C%20%20c%2B%2B%2C%0A%20dt%20%26lt%3B%26lt%3B%20New%20Column(%20%22Relative%20%22%20%7C%7C%20(Column(%20c%20)%20%26lt%3B%26lt%3B%20Get%20Name)%2C%20Numeric%2C%20Continuous%2C%0A%20%20Formula(%20%3AAs%20Column(%20c%20)%20%2F%3ATotal%20)%0A%20)%3B%0A)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-423486%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9AJMP%2016%EF%BC%9A%E4%BD%BF%E7%94%A8%E7%9B%B8%E5%B0%8D%E5%BC%95%E7%94%A8%E4%BD%BF%E7%94%A8%E5%85%AC%E5%BC%8F%E6%B7%BB%E5%8A%A0%E5%88%97%E7%9A%84%E8%85%B3%E6%9C%AC%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-423486%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%E7%9C%8B%E9%80%99%E5%80%8B%E4%BE%8B%E5%AD%90%EF%BC%9A%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3ENames%20Default%20to%20Here(%201%20)%3B%0A%0A%2F%2F%20mock%20up%20user%20data%20table%0Adt%20%3D%20New%20Table(%20%22Mock%20Up%22%20)%3B%0AFor(%20c%20%3D%201%2C%20c%20%26lt%3B%206%2C%20c%2B%2B%2C%0A%20col%20%3D%20dt%20%26lt%3B%26lt%3B%20New%20Column(%20%22My%20Column%20%22%20%7C%7C%20Char(%20c%20)%2C%20Numeric%2C%20Continuous%20)%3B%0A%20col%20%26lt%3B%26lt%3B%20Set%20Values(%20J(%2025%2C%201%2C%20Random%20Normal(%2080%2C%205%20)%20)%20)%3B%0A)%3B%0Ay%20%3D%20dt%20%26lt%3B%26lt%3B%20Get%20As%20Matrix%3B%0Acol%20%3D%20dt%20%26lt%3B%26lt%3B%20New%20Column(%20%22Total%22%2C%20Numeric%2C%20Continuous%20)%3B%0Acol%20%26lt%3B%26lt%3B%20Set%20Values(%20y%20*%20J(%205%2C%201%2C%201%20)%20)%3B%0A%0A%2F%2F%20solution%0Adt%20%3D%20Current%20Data%20Table()%3B%0Atotal%20%3D%20Column(%20N%20Col(%20dt%20)%20)%20%26lt%3B%26lt%3B%20Get%20As%20Matrix%3B%0Alast%20c%20%3D%20N%20Col(%20dt%20)%3B%0AFor(%20c%20%3D%201%2C%20c%20%26lt%3B%20last%20c%2C%20%20c%2B%2B%2C%0A%20dt%20%26lt%3B%26lt%3B%20New%20Column(%20%22Relative%20%22%20%7C%7C%20(Column(%20c%20)%20%26lt%3B%26lt%3B%20Get%20Name)%2C%20Numeric%2C%20Continuous%2C%0A%20%20Values(%20(Column(%20c%20)%20%26lt%3B%26lt%3B%20Get%20Values)%20%3A%5C%3C%2Fimg%3E%20total%20)%0A%20)%3B%0A)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-423067%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EJMP%2016%EF%BC%9A%E4%BD%BF%E7%94%A8%E7%9B%B8%E5%B0%8D%E5%BC%95%E7%94%A8%E6%B7%BB%E5%8A%A0%E5%B8%B6%E6%9C%89%E5%85%AC%E5%BC%8F%E7%9A%84%E5%88%97%E7%9A%84%E8%85%B3%E6%9C%AC%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-423067%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%EF%BC%8C%3C%2FP%3E%3CP%3E%E5%98%97%E8%A9%A6%E5%9C%A8%20JMP%20%E4%B8%AD%E7%B7%A8%E5%AF%AB%E6%88%91%E7%9A%84%E7%AC%AC%E4%B8%80%E5%80%8B%E8%85%B3%E6%9C%AC%EF%BC%8C%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%AC%9D%E6%82%A8%E7%9A%84%E5%B9%AB%E5%8A%A9%E3%80%82%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%E6%88%91%E6%9C%89%2010%20%E5%88%97%EF%BC%88%E6%AF%94%E5%A6%82%E8%AA%AA%E4%B8%80%E3%80%81%E4%BA%8C%E3%80%81%E4%B8%89%E3%80%81%E5%9B%9B%E3%80%81%E4%BA%94%E3%80%81%E5%85%AD%E3%80%81%E4%B8%83%E3%80%81%E5%85%AB%E3%80%81%E4%B9%9D%E3%80%81%E5%8D%81%EF%BC%89%E5%92%8C%E4%B8%80%E5%80%8B%E7%B8%BD%E8%A8%88%E5%88%97%E3%80%82%3C%2FP%3E%3CP%3E%E6%88%91%E9%9C%80%E8%A6%81%E5%86%8D%E6%B7%BB%E5%8A%A0%E5%8D%81%E5%88%97%E4%BE%86%E8%A8%88%E7%AE%97%E5%89%8D%E5%8D%81%E5%88%97%E7%9A%84%E7%99%BE%E5%88%86%E6%AF%94%E3%80%82%20%E6%88%91%E4%B8%8D%E8%83%BD%E4%BD%BF%E7%94%A8%E5%88%97%E5%90%8D%EF%BC%8C%E5%9B%A0%E7%82%BA%E6%88%91%E5%AF%A6%E9%9A%9B%E4%B8%8A%E6%9C%89%20150%20%E5%88%97%EF%BC%8C%E4%B8%A6%E4%B8%94%E5%88%97%E5%90%8D%E9%83%BD%E4%B8%8D%E5%90%8C%E3%80%82%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%E6%88%91%E5%A6%82%E4%BD%95%E6%B7%BB%E5%8A%A0%E4%B8%80%E5%80%8B%E6%96%B0%E5%88%97%E4%B8%A6%E6%AF%8F%E6%AC%A1%E5%B0%87%E5%85%AC%E5%BC%8F%E4%B8%AD%E7%9A%84%E5%88%97%E5%89%8D%E9%80%B2%201%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%E4%BE%8B%E5%A6%82%20%EF%BC%9A%3C%2FP%3E%3CP%3E%E5%89%B5%E5%BB%BA%E6%96%B0%E5%88%97%E7%AC%AC%2011%20%E5%88%97%3C%2FP%3E%3CP%3E%E5%A1%AB%E5%AF%AB%E5%85%AC%E5%BC%8F%E2%80%9C%E7%AC%AC%201%20%E5%88%97%2F%E7%B8%BD%E8%A8%88%E2%80%9D%3C%2FP%3E%3CP%3E%E5%B0%87%E5%88%97%E5%90%8D%E7%A8%B1%E8%A8%AD%E7%BD%AE%E7%82%BA%E2%80%9Cpct_one%E2%80%9D%3C%2FP%3E%3CP%3E%E5%89%B5%E5%BB%BA%E6%96%B0%E5%88%97%E7%AC%AC%2012%20%E5%88%97%3C%2FP%3E%3CP%3E%E5%A1%AB%E5%AF%AB%E5%85%AC%E5%BC%8F%E2%80%9C%E7%AC%AC%202%20%E5%88%97%20%2F%20%E7%B8%BD%E8%A8%88%E2%80%9D%3C%2FP%3E%3CP%3E%E5%B0%87%E5%88%97%E5%90%8D%E7%A8%B1%E8%A8%AD%E7%BD%AE%E7%82%BA%E2%80%9Cpct_two%E2%80%9D%3C%2FP%3E%3CP%3E%E3%80%82%3C%2FP%3E%3CP%3E%E3%80%82%3C%2FP%3E%3CP%3E%E3%80%82%3C%2FP%3E%3CP%3E%E7%B9%BC%E7%BA%8C%2010%20%E5%88%97%E3%80%82%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%E6%8F%90%E5%89%8D%E8%87%B4%E8%AC%9D%EF%BC%81%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-423067%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CLINGO-LABEL%3E%E6%B6%88%E8%B2%BB%E8%80%85%E5%92%8C%E5%B8%82%E5%A0%B4%E7%A0%94%E7%A9%B6%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3E%E8%B3%AA%E9%87%8F%E5%92%8C%E5%B7%A5%E8%97%9D%E5%B7%A5%E7%A8%8B%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3E%E8%A6%96%E7%AA%97%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
Choose Language Hide Translation Bar
Rakendu
Level I

JMP 16: Script to add columns with formula, using relative reference

Hi,

Trying to write my first ever script in JMP, would greatly appreciate some help.

 

I have 10 columns (lets say one, two, three, four, five, six , seven, eight, nine, ten) and a Total column.

and i need to add ten more column which calculates the percentage of the first ten columns. I cannot use column names because i have 150 columns actually and the column names are all different. 

 

How do i get it to add a new column and everytime advance the column in the formula by 1

 

For example :

create new column col 11

fill with formula  "col 1 / Total"

set name of column to 'pct_one'

create new column col 12

fill with formula "col 2 / Total"

set name of column to 'pct_two'

.

.

.

continue for 10 columns.

 

Thanks in advance!

2 ACCEPTED SOLUTIONS

Accepted Solutions

Re: JMP 16: Script to add columns with formula, using relative reference

See this example:

 

Names Default to Here( 1 );

// mock up user data table
dt = New Table( "Mock Up" );
For( c = 1, c < 6, c++,
	col = dt << New Column( "My Column " || Char( c ), Numeric, Continuous );
	col << Set Values( J( 25, 1, Random Normal( 80, 5 ) ) );
);
y = dt << Get As Matrix;
col = dt << New Column( "Total", Numeric, Continuous );
col << Set Values( y * J( 5, 1, 1 ) );

// solution
dt = Current Data Table();
total = Column( N Col( dt ) ) << Get As Matrix;
last c = N Col( dt );
For( c = 1, c < last c,  c++,
	dt << New Column( "Relative " || (Column( c ) << Get Name), Numeric, Continuous,
		Values( (Column( c ) << Get Values) :\ total )
	);
);

View solution in original post

Rakendu
Level I

Re: JMP 16: Script to add columns with formula, using relative reference

Thanks Mark! Worked like a charm!

 

Did some tweaks, leaving it here for any future reference. Thanks alot!

 

Names Default to Here( 1 );

// mock up user data table
dt = New Table( "Mock Up" );
For( c = 1, c < 6, c++,
	col = dt << New Column( "My Column " || Char( c ), Numeric, Continuous );
	col << Set Values( J( 25, 1, Random Normal( 80, 5 ) ) );
);
y = dt << Get As Matrix;
col = dt << New Column( "Total", Numeric, Continuous );
col << Set Values( y * J( 5, 1, 1 ) );

// solution
dt = Current Data Table();
total = Column( N Col( dt ) ) << Get As Matrix;
last c = N Col( dt );
For( c = 1, c < last c,  c++,
	dt << New Column( "Relative " || (Column( c ) << Get Name), Numeric, Continuous,
		Formula( :As Column( c ) /:Total )
	);
);

View solution in original post

2 REPLIES 2

Re: JMP 16: Script to add columns with formula, using relative reference

See this example:

 

Names Default to Here( 1 );

// mock up user data table
dt = New Table( "Mock Up" );
For( c = 1, c < 6, c++,
	col = dt << New Column( "My Column " || Char( c ), Numeric, Continuous );
	col << Set Values( J( 25, 1, Random Normal( 80, 5 ) ) );
);
y = dt << Get As Matrix;
col = dt << New Column( "Total", Numeric, Continuous );
col << Set Values( y * J( 5, 1, 1 ) );

// solution
dt = Current Data Table();
total = Column( N Col( dt ) ) << Get As Matrix;
last c = N Col( dt );
For( c = 1, c < last c,  c++,
	dt << New Column( "Relative " || (Column( c ) << Get Name), Numeric, Continuous,
		Values( (Column( c ) << Get Values) :\ total )
	);
);
Rakendu
Level I

Re: JMP 16: Script to add columns with formula, using relative reference

Thanks Mark! Worked like a charm!

 

Did some tweaks, leaving it here for any future reference. Thanks alot!

 

Names Default to Here( 1 );

// mock up user data table
dt = New Table( "Mock Up" );
For( c = 1, c < 6, c++,
	col = dt << New Column( "My Column " || Char( c ), Numeric, Continuous );
	col << Set Values( J( 25, 1, Random Normal( 80, 5 ) ) );
);
y = dt << Get As Matrix;
col = dt << New Column( "Total", Numeric, Continuous );
col << Set Values( y * J( 5, 1, 1 ) );

// solution
dt = Current Data Table();
total = Column( N Col( dt ) ) << Get As Matrix;
last c = N Col( dt );
For( c = 1, c < last c,  c++,
	dt << New Column( "Relative " || (Column( c ) << Get Name), Numeric, Continuous,
		Formula( :As Column( c ) /:Total )
	);
);

Recommended Articles