Subscribe Bookmark RSS Feed

Select All Columns and Delete Formula Property?

aandw

Community Trekker

Joined:

Mar 12, 2015

Comparable to Copy All Paste Special Values in Excel, how can I select all columns in Data Table and delete column formulas while preserving the values of each column in JSL Script?

This previous discussion was a beneficial first step.

JSL - How to remove formula from column?

9 REPLIES
aniy

Community Trekker

Joined:

Jun 20, 2014

I have the same question. Currently, when I use <<delete property(formula) it removes the formula and the values. When I clear the formula manually by going to the column menu it does keep the values, but I need a script solution.

ms

Super User

Joined:

Jun 23, 2011

That's strange. For me values are retained after running << Delete Property(Formula).

Currently on JMP 12 on Mac, but I am 99% certain it worked the same way in JMP 11.

Jeff_Perkinson

Community Manager

Joined:

Jun 23, 2011

I just tested in JMP 9, JMP 10 and JMP 11 and the values were retained in all versions.

Can you test with this simple script and tell us what happens with the "Pred Formula ABRASION" column?


open("$SAMPLE_DATA\Tiretread.jmp");



column("Pred Formula ABRASION")<<delete property(formula);


-Jeff

-Jeff
ram

Contributor

Joined:

Jun 5, 2017

I am using delete property(Formula) in for loop and it does not delete formula. I am using JMP13. Below is 

Try( column(datatable( dtname || "_Wide"), newcol) << Delete Formula );  << delete property(Formula);

aniy

Community Trekker

Joined:

Jun 20, 2014

Thank you for your reply, MS. Somehow I didn't get that notification and I am replying late.

The proposed solution: column(dt,1)<<delete formula; and column(dt,1)<<delete property (formula); worked eventually. I don't know what was wrong when I first tried it. I am using JMP 10 on Windows 7

benningerk

Community Trekker

Joined:

Aug 25, 2014

If you delete the formula in the same script you are creating the formula, you will need to use some kind of wait(1) function to allow the formula to calculate before deleting it.

 

New Column( "Name", Formula());
Wait(1);
:Name << Delete Formula;

 

ms

Super User

Joined:

Jun 23, 2011

Two approaches to "Paste Special" with jsl.

dt = Current Data Table();

// 1. Make a copy without formulas (and keep original table)

dt << Subset(Copy formula(0), All rows, Selected columns only(0));

// 2. loop through columns and delete any formulas

cols = dt << get column names();

For(i = 1, i <= N Col(dt), i++,

    cols[i] << delete property(formula)

);

robust1972

Community Trekker

Joined:

Jan 15, 2014

this is exactly what I was looking for! Thanks!

billw_jmp

Staff

Joined:

Jul 2, 2014

One non-scripting option would be use Standardize Attributes.  Select all of the columns where you want to remove the formula in Columns box on the left of the data table.  Right click in the blue (highlighted) area and select Standardize Attributes.  Go to Delete Properties at the bottom of the dialog box and select Column Properties.  Select Formula and then click apply.  The formulas should be removed and the values preserved.