cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • Sign-in to the JMP Community will be unavailable intermittently Dec. 6-7 due to a system update. Thank you for your understanding!
  • We’re retiring the File Exchange at the end of this year. The JMP Marketplace is now your destination for add-ins and extensions.
  • JMP 19 is here! Learn more about the new features.

Discussions

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

applying formula to 2400 columns, but that each references a previous column's values?

I have a table of 2400 columns and 311 rows. Each column has values and no formula. However, I have a single formula I want to use on each column that references that column's values. For example, for column "80" I have next to it another column with this: 

Abs(
	Col Sum(
		(:Name( "80" ) / Col Sum( :Name( "80" ) )) *
		Ln( :Name( "80" ) / Col Sum( :Name( "80" ) ) )
	)
) / Ln( Col Number( :Name( "80" ) ) )

Ideally, I'd like a new table of columns that results from using this formula on each of the previous table's columns values. I can go through manually and type in the "80" after pasting each formula to a newly created column next to the original on the first table, but there must be a quicker way to do this? If not a completely new table, then can I somehow create a "lag" that simply references the column before to get the values rather than specifying a unique column name (e.g., "80") each time? But the first way would be preferable. Thank you.

1 ACCEPTED SOLUTION

Accepted Solutions
ih
Super User (Alumni) ih
Super User (Alumni)

Re: applying formula to 2400 columns, but that each references a previous column's values?

There are other ways to do this, but check out the recently-posted Scripting Tools Add-in, if I understand your request correctly you can select all of the columns you are interested in (start with a couple to make sure it works as expected) and enter this in the formula section:

 

Abs(
	Col Sum(
		(<column> / Col Sum( <column> )) *
		Ln( <column> / Col Sum( <column> ) )
	)
) / Ln( Col Number( <column> ) )

ih_0-1630093273431.png

 

View solution in original post

2 REPLIES 2
ih
Super User (Alumni) ih
Super User (Alumni)

Re: applying formula to 2400 columns, but that each references a previous column's values?

There are other ways to do this, but check out the recently-posted Scripting Tools Add-in, if I understand your request correctly you can select all of the columns you are interested in (start with a couple to make sure it works as expected) and enter this in the formula section:

 

Abs(
	Col Sum(
		(<column> / Col Sum( <column> )) *
		Ln( <column> / Col Sum( <column> ) )
	)
) / Ln( Col Number( <column> ) )

ih_0-1630093273431.png

 

fever
Level III

Re: applying formula to 2400 columns, but that each references a previous column's values?

This works perfectly. Thank you.

Recommended Articles