Subscribe Bookmark RSS Feed

Operating on selected rows

akash_nigam_gma

Community Trekker

Joined:

Jan 15, 2015

Hello Everyone,

Is it possible for me to operate a function on selected rows without using the FOR loop.

For example

k = dt<< Get Rows Where (pt:Parameter = ot:Parameter);

For (i=1,i<= Nrow(k),i++,

pt:value[k] = pt:value[k]/5;   // I want the value of selected rows only to be divided by 5.

);


Is it possible for me to rewrite the code without using simple JMP function for it ? I dont like using too many for loops.


Thanks in advance!


regards,

Akash

6 REPLIES
ian_jmp

Staff

Joined:

Jun 23, 2011

NamesDefaultToHere(1);

dt = Open("$SAMPLE_DATA/Big Class.jmp");

Wait(3);

k = dt << getRowsWhere(:sex == "M");

h = Column(dt, "height") << getValues;

h[k] = h[k]*0.5;

Column(dt, "height") << setValues(h);

anders_bankefor

Community Trekker

Joined:

Dec 8, 2015

Hi Ian,

what does "Wait(3);" do in this context?

BR

Anders

ian_jmp

Staff

Joined:

Jun 23, 2011

It causes JMP to pause for 3 seconds, and I inserted it so that you could see what's happening (run the code and look at the column called 'sex'). You can remove it of course.

ms

Super User

Joined:

Jun 23, 2011

Or try the "Divide To" assignment:

dt:height[k] /= 5

David_Burnham

Super User

Joined:

Jul 13, 2011

Just curious, why don't you like using loops?

-Dave
akash_nigam_gma

Community Trekker

Joined:

Jan 15, 2015

Thanks for replies.

Just that i deal with huge amounts of data and running loops for every action increase the processing time. I hope inbuilt functions/operators will be more optimized than me writing loops.