Subscribe Bookmark RSS Feed

Need help for using Lag function

switzal87

Community Trekker

Joined:

May 21, 2015

Hello everyone!

 

Hope someone could help me with this:

 

What is is the expected output of the following code?

123.JPG

 

After evaluation I get the following Log:

12345.JPG

 

And the new columns just looks like this:

1234.JPG

 

SliderID column is :

5.JPG

Hope someone could enlighten me with this! thanks in advance! :)

2 ACCEPTED SOLUTIONS

Accepted Solutions
stephen_pearson

Community Trekker

Joined:

Oct 6, 2014

Solution

Your formula is missing an if statement. It should be something like

Formula(If(:sliderID == lag(:sliderID,1),1,0))

I would recommend you get all the steps working by using the menus and mouse clicks before trying to script it.

txnelson

Super User

Joined:

Jun 22, 2012

Solution

Your formula

 

     :SliderID == Lag(:SiiderID, 1 )

is a boolean operation.  When the current rows value of SliderID is equal to the previous row's value os SliderID, "Lag(:SliderID, 1)", the value of the comparison will be "True" and therefore it will return a numeric value of 1.  If the comparison of the current row's value of SliderID is not equal to the previous row's value of SliderID, the returned value will be a 0.

@stephen_pearson modification of turning the formula into an "If" clause will result in the same values.

The error that is listed out, is a response to the line

 

     dABCR << Delete Rows;

and it is being returned, because no rows had been selected as a result of the line

 

     dABCR << Select Where(SN == 1);

The only correction to this line would be to scope the column reference by placing a ":" in front of SN

     dABCR << Select Where(:SN==1);
Jim
5 REPLIES
stephen_pearson

Community Trekker

Joined:

Oct 6, 2014

Solution

Your formula is missing an if statement. It should be something like

Formula(If(:sliderID == lag(:sliderID,1),1,0))

I would recommend you get all the steps working by using the menus and mouse clicks before trying to script it.

txnelson

Super User

Joined:

Jun 22, 2012

Solution

Your formula

 

     :SliderID == Lag(:SiiderID, 1 )

is a boolean operation.  When the current rows value of SliderID is equal to the previous row's value os SliderID, "Lag(:SliderID, 1)", the value of the comparison will be "True" and therefore it will return a numeric value of 1.  If the comparison of the current row's value of SliderID is not equal to the previous row's value of SliderID, the returned value will be a 0.

@stephen_pearson modification of turning the formula into an "If" clause will result in the same values.

The error that is listed out, is a response to the line

 

     dABCR << Delete Rows;

and it is being returned, because no rows had been selected as a result of the line

 

     dABCR << Select Where(SN == 1);

The only correction to this line would be to scope the column reference by placing a ":" in front of SN

     dABCR << Select Where(:SN==1);
Jim
Craige_Hales

Staff

Joined:

Mar 21, 2013

Looking at the data, I don't see any repeated SliderID values, so it might be working correctly. You might use

try(dABCE<<DeleteRows) 

to catch and ignore the error when there is nothing to delete.

 

edit: well, not try, if it isn't throwing an error. Maybe this.

Craige
switzal87

Community Trekker

Joined:

May 21, 2015

that was enlightening! appreciated the brief explanation on how the formula works! :)
switzal87

Community Trekker

Joined:

May 21, 2015

this worked for me! thanks a lot! :)